【发布时间】:2013-06-29 19:33:17
【问题描述】:
我有以下
user_id job_id job_offer_date
------- ------ --------------
1 123 2013-05-10
1 124 2013-07-19
2 127 2013-05-10
3 128 2013-06-15
我想在此处编写两个单独的查询以在报告中使用:
QUERY #1(我已经有了这个)
此查询要返回所有第一个工作邀请日期在 2013 年 5 月 10 日之前的用户。这是一个简单的查询,因为如果用户在该日期之前有任何工作,它将返回他。在这种情况下,我将看到用户 #1、#2。
这个查询看起来像这样:
SELECT DISTINCT j.* FROM job WHERE j.job_offer_date <= '2013-05-10'
QUERY #2(这是我真正的问题)
如何返回第一个工作邀请日期在 2013 年 5 月 10 日之后和 2013 年 7 月 19 日之前的用户。在这种情况下,因为用户 #1 在 2013 年 5 月 10 日之前收到了他的第一个报价,所以他不应该被包括在结果中。此结果集应仅包含用户 #3。
这里最重要的关键是因为用户 #1 在 2013 年 5 月 10 日之前收到了他的第一个报价,他应该从查询 #2 的结果集中排除。
【问题讨论】:
-
您可以使用 where 条件,例如 job_offer_date > '2013-05-10' 和 job_offer_date
-
由于我原帖的最后一句话,这不起作用。
-
您需要只获取 user_ids 还是每个用户都需要该表为他提供的所有行?
-
我实际上只需要 user_ids。我需要确保我只对我的用户进行一次分桶。
标签: sql sql-server sql-server-2008 date