sql - 在两组日期之间选择客户,而不仅仅是两个日期
问题描述
我有以下代码:
select ifnull(c.clientid,0) as ClientID, c.surname as Surname, c.addr1 as Address1, c.postcode as Postcode
from cust c
where (c.tour_date between '2019-06-10' and '2019-06-18')
and (c.tour_date between '2019-07-15' and '2019-07-23')
group by ClientID, Surname, Address1, Postcode
order by ClientID asc
它不起作用 - 我想做的是在两组日期之间选择日期。传统上,我们只会选择 2019-06-10 和 2019-07-23,但我们包含的许多客户不应该包含在内。
没关系,我改变了and
它or
并且它正在工作,我很傻!
EDIT2:啊,实际上,当我使用时,or
我得到了 2,005 个客户,但是当我进行两次单独的提取时,我得到了 2,029 个客户。有任何想法吗?
解决方案
You have more clients on separate queries because some have records between both date ranges. Your group by clause removes the duplicates.
推荐阅读
- apache-kafka - 是否需要经纪人才能创建主题?
- ios - 如何在使用 UITableViewDiffableDataSource 时设置表格视图单元格的高度(如 heightForRowAt)
- reactjs - userEvent.type 不更新测试中的输入值
- c# - 从最后一个句号中删除字符串
- javascript - 使用 React 和 boostrap 的行信息单击打开模式
- python - 使用 python 代码执行 application/x-executable 文件
- vue.js - Vue3:iframe srcdoc 中的插槽?
- node.js - 使用来自同一个包的不同节点模块版本
- javascript - 如何在three.js中扩展gridHelper?
- javascript - Vue,如何根据路线渲染不同的导航栏?