我有一张表,如下图所示。我需要让所有在二月份订购但三月份没有订单的用户。
我有以下查询,但我不知道如何完成它。
SELECT *
FROM My_Table
WHERE Order > 0
AND Date BETWEEN '20150201' AND '20150228'
User Date order
-----------------------------
Aleks 2015-02-01 100
Tatya 2015-03-10 200
Sabine 2015-02-08 300
Aleks 2015-03-27 150
答案 0 :(得分:3)
您可以将not exists
与相关子查询一起使用:
select *
from [My_Table] t
where [Order] > 0
and ([Date] between '20150201' and '20150228')
and not exists ( select *
from [My_Table]
where [Order] > 0
and [User] = t.[User]
and [Date] between '20150301' and '20150331')
答案 1 :(得分:0)
假设您只需要每个用户一次:
SELECT User
FROM My_Table
WHERE
Order > 0
AND Date BETWEEN '20150201' AND '20150331'
GROUP BY User
HAVING max(date) < '20150301'