1

従業員とその勤務時間を追跡する C# を使用して、MSSSQL データベースからデータを取得しています。関連するデータを引き出すために、通常の単純な select ステートメントを使用しているだけです。データを要約できるようにしたいと思います (正しい言葉を使用しているかどうかはわかりません)。

たとえば、次の画像の黒のテキストは現在私が持っているものですが、赤のテキストを何とか追加できるようにしたいと考えています。これを行うための最良のアプローチは何ですか?おそらく、より小さなクエリに分割しますか?

ここに画像の説明を入力

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

次のクエリは、1 つのクエリで総計を除くすべてのデータを取得します。

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 に答える
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 に答える