按列PRN的SQL查询组行

时间:2014-02-04 21:52:04

标签: sql sql-server sql-server-2008

您需要对下面的SQL查询提供一些帮助

DECLARE @company nvarchar(50)
DECLARE @theweek date

SET @company = 'RWF'
SET @theweek = '2014-02-03'

SELECT [thedate],[PRN],[StartTime] ,[FinishTime],[Grade],[BreakTime],[TotalCost],[Department],[CompanyCode]
FROM LabourHireCost 
WHERE thedate BETWEEN @THEWEEK AND CONVERT(datetime, @theweek) +7 
ORDER BY CompanyCode, PRN, thedate

这个返回结果如下(如下),但如果可能,我想做的是返回员工和本周的工作时间

    Thedate    PRN  Start   Finish  Grade Break  Cost   Department Company
| 2014-02-03 | 179 | 06:00 | 06:00 | 2  | 01:00 | 26.17 |      2   |   DH  |   
| 2014-02-04 | 179 | 06:00 | 06:00 | 3  | 01:00 | 36.17 |      2   |   DH  | 
| 2014-02-03 | 178 | 06:00 | 06:00 | 2  | 01:00 | 26.17 |      2   |   DH  | 
| 2014-02-04 | 178 | 06:00 | 06:00 | 4  | 01:00 | 46.17 |      2   |   DH  | 

我在想这样的事情

PRN 179
 Thedate      Start   Finish  Grade Break  Cost   Department Company 
| 2014-02-03 | 06:00 | 06:00 | 2  | 01:00 | 26.17 |  2   |   DH  |
| 2014-02-04 | 06:00 | 06:00 | 3  | 01:00 | 36.17 |  2   |   DH  |

PRN 178
| 2014-02-03 | 06:00 | 06:00 | 2  | 01:00 | 26.17 |  2   |   DH  | 
| 2014-02-04 | 06:00 | 06:00 | 4  | 01:00 | 46.17 |  2   |   DH  | 

3 个答案:

答案 0 :(得分:1)

根据您当前的结果与预期结果,看起来查询已经返回了您想要的数据。如果您想以不同方式呈现它,那么这将在您的客户端应用程序中完成(无论是Web应用程序,报告软件,还是Excel),但SQL Server通常不应用于将数据集分解为格式良好的报表。

答案 1 :(得分:0)

那么如何使用cte来计算每个人(开始和结束之间的时间框架)在x日期工作然后选择它的时间量?

答案 2 :(得分:0)

这看起来很像家庭作业。我相信你所寻找的是一个加入http://en.wikipedia.org/wiki/Join_%28SQL%29