moh*_*111 7 sql t-sql sql-server
我有这样的示例数据:
DECLARE @T Table (ID INT, Name VARCHAR(10), DOB DATE)
INSERT INTO @T (ID,Name,DOB) VALUES (1,'Mohan','2016-11-11')
INSERT INTO @T (ID,Name,DOB) VALUES (2,'Raj','2016-11-07')
INSERT INTO @T (ID,Name,DOB) VALUES (3,'Manny','2016-10-30')
INSERT INTO @T (ID,Name,DOB) VALUES (4,'kamal','2016-11-01')
INSERT INTO @T (ID,Name,DOB) VALUES (5,'Raj','2016-11-08')
INSERT INTO @T (ID,Name,DOB) VALUES (6,'Manasa','2016-11-10')
Run Code Online (Sandbox Code Playgroud)
我的问题是我周日在这张桌子上运行查询(即2016年11月6日)
例如 :
Select Count(*), Cnt
from @T /* how to write logic for missing days */
Run Code Online (Sandbox Code Playgroud)
我的输出:
Cnt Days
6 0 Days
Run Code Online (Sandbox Code Playgroud)
当我在周四(即2016年11月6日)运行它时也是如此
Cnt Days
6 4 Days
Run Code Online (Sandbox Code Playgroud)
我怎么需要得到这个.如果它在星期六运行,它将在每个星期日运行它应该显示6天和星期日到星期日计算.
请提出一些做法的方法 - 我无法继续前进
要获取自星期日以来的天数,您可以使用该DATEPART函数以整数形式获取星期几,其中星期日 = 1,星期六 = 7。因此对于本例:
SELECT COUNT(*), DATEPART(WEEKDAY, GETDATE()) - 1
FROM @T
Run Code Online (Sandbox Code Playgroud)