我有一个包含列
的表RowId int
MailSent DateTime
Acknowledged DateTime
Name varchar(100)
数据如下,
ROWID MAILSENT ACKNOWLEDGED NAME
1. 2016/01/01. NULL. A
2. NULL. 2016/01/10 A
3. 2016/01/21. NULL. A
4. NULL. 2016/01/30. A
5. 2016/01/01. Null. B
6. Null. 2016/01/10 B
所以我需要的结果是用户确认邮件的总天数。
对于用户A,答案应该是20天(10 + 10),而用户B则是10天。
请向我提供有关计算用户确认所有邮件的总天数的查询。
答案 0 :(得分:0)
DECLARE @startdate date = MailSent
DECLARE @enddate date = Acknowledged
SELECT DATEDIFF(day,@ date1,@ date2);
MSDN LINK:https://msdn.microsoft.com/en-us/library/ms189794.aspx
答案 1 :(得分:0)
试试这个:
选择datediff(day,stuff.start,stuff.end)(选择 max(mailsent)为start,max(已确认)为end group by name)stuff