作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
SELECT DISTINCT Campaign_id
FROM Impressions
WHERE Date BETWEEN '2015-03-01' AND '2015-03-31' ;
上述查询为我提供了在 2015 年 3 月 1 日至 2015 年 3 月 31 日期间任何日期处于事件状态的 Campaign_id
结果。
我希望结果集包含 campaign_id
(如果该事件在 2015 年 3 月 1 日至 2015 年 3 月 31 日期间所有日期均处于事件状态) .
我该如何解决这个问题?
最佳答案
假设 DATE
是 DATE
数据类型并且没有时间部分。
DECLARE @Start DATE = '2015-03-01',
@End DATE = '2015-03-31'
SELECT Campaign_id
FROM Impressions
WHERE Date BETWEEN @Start AND @End
GROUP BY Campaign_id
HAVING COUNT(DISTINCT Date) = 1 + DATEDIFF(DAY, @Start, @End);
<小时/>
或者没有变量的版本
SELECT Campaign_id
FROM Impressions
CROSS APPLY (VALUES ({ d '2015-03-01' },
{ d '2015-03-31' })) V([Start], [End])
WHERE [Date] BETWEEN [Start] AND [End]
GROUP BY Campaign_id, [Start], [End]
HAVING COUNT(DISTINCT Date) = 1 + DATEDIFF(DAY, [Start], [End]);
关于SQL:Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30965954/
我是一名优秀的程序员,十分优秀!