1

我正在使用 C# 从 MSSSQL 数据库中提取一些数据,该数据库跟踪员工及其工作时间。我只是使用常规的简单选择语句来提取相关数据。我希望能够总结数据(不确定我是否使用了正确的词)。

例如,下图中的黑色文本是我目前拥有的,但我希望能够以某种方式添加红色文本。这样做的最佳方法是什么?也许拆分成更小的查询?

在此处输入图像描述

4

3 回答 3

1

对于 SQL Server 2008+,您可以使用GROUPIN SETS. 在你的例子中,试试这个:

SELECT  SalesPersonCode, 
        SalesPersonName, 
        [Date], 
        SUM(HoursWorked) HoursWorked
FROM YourTable
GROUP BY GROUPING SETS( (SalesPersonCode, SalesPersonName, [Date]),
                        (SalesPersonCode),())
于 2012-09-10T18:47:16.670 回答
0

要获得销售人员的总工作时间:

SELECT SalesPersonCode, SUM(HoursWorked) AS [HoursWorked]
FROM table
GROUP BY SalesPersonCode

应该返回:

001 26
002 24

要获得总工作时间:

SELECT SUM(HoursWorked) AS [HoursWorked]
FROM table

应该返回:

50
于 2012-09-10T18:35:08.677 回答
0

以下查询将在一个查询中为您获取除总计之外的所有数据:

select t1.salespersoncode,
    t1.salespersonname,
    t1.date,
    t1.hoursworked,
    x.TotalHours
from yourTable t1
inner join
(
    select salespersoncode,
        sum(hoursworked) TotalHours
    from yourTable
    group by salespersoncode
) x
    on t1.salespersoncode = x.salespersoncode

如果您想要所有小时的总计:

select sum(hoursworked) GrandTotal
from yourTable
于 2012-09-10T18:40:10.467 回答