我有一个表格,其中包含最多5个不同组织的电子邮件对话。我希望能够找到一个人重新收到电子邮件的最短日期,然后使用该最短日期仅返回该最短日期之后的所有电子邮件。实施例
ID Date To BodyofEmail
A 1/1/14 Tom hi hello
A 1/2/14 ABC Afternoon
A 1/6/14 Tom hi hello
B 1/2/14 ABC Afternoon
B 1/3/14 Tom hi hello
C 1/2/14 Tom Afternoon
C 1/4/14 ABC hi hello
C 1/8/14 Tom Afternoon
我想要的是,返回首次发送到ABC后发送的所有电子邮件:
ID Date To BodyofEmail
A 1/2/14 ABC Afternoon
A 1/6/14 Tom hi hello
B 1/2/14 ABC Afternoon
B 1/3/14 Tom hi hello
C 1/4/14 ABC hi hello
C 1/8/14 Tom Afternoon
如何在查询中设置最小日期,然后在Sql Server的where / condition子句中使用它。
答案 0 :(得分:1)
您可以先选择每个人的最短日期,然后用它来选择该日期后表格中的所有列。
with mindate as
(select id, min(date) as mndt from tablename group by id)
select t.*
from tablename t join mindate m
on t.id = m.id and t.date > m.mndt
答案 1 :(得分:0)
这样做你想要的吗?
select c.*
from conversations c
where c.date >= (select min(c2.date) from conversations c2 where c2.to = 'ABC')