需要帮助找到正确的T-SQL查询
发布时间:2020-12-12 06:38:14 所属栏目:MsSql教程 来源:网络整理
导读:我不太清楚该怎么做.基本上我有一张这样的桌子 UserId DateRequested Approved ApprovedBy Notes------------ ----------------------- -------- ----------- -----1 2011-05-26 0 NULL NULL1 2011-05-27 0 NULL NULL1 2011-05-28 0 NULL NULL1 2011-06-05 0
我不太清楚该怎么做.基本上我有一张这样的桌子
UserId DateRequested Approved ApprovedBy Notes ------------ ----------------------- -------- ----------- ----- 1 2011-05-26 0 NULL NULL 1 2011-05-27 0 NULL NULL 1 2011-05-28 0 NULL NULL 1 2011-06-05 0 NULL NULL 1 2011-06-06 0 NULL NULL 1 2011-06-25 0 NULL NULL 这基本上包含员工请求假期的日子.现在,当授予一天或几天时,需要将此数据复制到表单的表中 UserId DateFrom DateTo 所以基本上对于我想要的上述数据: UserId DateFrom DateTo ------------------------------- 1 2011-05-26 2011-05-28 1 2011-06-05 2011-06-06 1 2011-06-25 2011-06-25 我想在DateFrom和DateTo中连续几天.现在我不知道如何在不使用while循环的情况下执行此操作.这是SQL,所以我更喜欢非迭代解决方案. 请指教!!! 解决方法;WITH cte AS ( SELECT *,DATEDIFF(DAY,DateRequested)- ROW_NUMBER() OVER (PARTITION BY UserId ORDER BY DateRequested) AS Grp FROM YourTable WHERE Approved = 1 /*Presumably - but your example data doesn't show this.*/ ) SELECT UserId,MIN(DateRequested) AS DateFrom,MAX(DateRequested) AS DateTo FROM cte GROUP BY UserId,Grp (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SqlServer的优化
- nmap script 总结
- sql-server – 如何使用DateTime执行SQL NOT NULL?
- LINQ’join’期待一个平等,但我想使用’contains’
- 比较详细的完美解决安装sql2000时出现以前的某个程序安装已
- SQLServer中char、varchar、nchar、nvarchar的区别:
- sql-server – SQL Server中的复合索引与INCLUDE覆盖索引
- sql-server – Crystal Reports,用于SQL Server的OLEDB提供
- windows下如何安装和启动MySQL
- char、varchar、nchar、nvarchar的区别