2

私は現在、次のSQLクエリを持っています

SELECT [Date], DATENAME(dw,[Date]) AS Day, SUM(Units) AS TotalUnits
FROM tblTimesheetEntries 
WHERE UserID = 'PJW' 
AND Date >= '2013-01-01' 
GROUP BY [Date] 
ORDER BY [Date] DESC;

これは、指定されたユーザーと日付の合計[ユニット]を返します。

ただし、新しい基準に基づいて2つの別々の合計ユニットを作成したいと思います。つまり、[ユニット]が「充電可能かどうか」であるかどうかです。tblTimeSheetsには、ブール値であるChargeableというフィールドがあります(有料の場合はtrue、そうでない場合はfalse)。これを組み込んで、ユニットのタイプごとに1つずつ2つの合計を表示するにはどうすればよいですか?

4

1 に答える 1

7

CASEとともにを使用してSUM()、個別の合計を計算できます。

SELECT [Date], 
    DATENAME(dw,[Date]) AS Day, 
    sum(case when Chargeable = 1 then Units else 0 end) ChargeableTotal,
    sum(case when Chargeable = 0 then Units else 0 end) NotChargeableTotal,
    sum(Units) AS TotalUnits
FROM tblTimesheetEntries 
WHERE UserID = 'PJW' 
    AND Date >= '2013-01-01' 
GROUP BY [Date] 
ORDER BY [Date] DESC;
于 2013-01-23T13:52:19.810 に答える