使用SQL Server查询生成工作时间

时间:2015-10-27 15:56:17

标签: sql-server

我有这些数据,我需要生成一个查询,将输出

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用2个单独的row_number()来执行此类行分组。所有数据都有1个,按日期排序,第二个按代码和日期排序。要将组与数据分开,请使用这两个row_number()之间的差异。当它发生变化时,它就是一个新的数据块。然后,您可以在分组中使用该数字,并获取每个数字的最小/最大日期。

对于最终布局,您可以使用pivot或sum + case,很可能您希望使用新的row_number来正确对齐行。根据您是否有数据丢失/不匹配,您可能需要额外的检查。