以下のクエリで、2 つの列の結果を追加し、合計列に基づいて「時間通り」列に計算を実行しようとしています。結果として私が欲しいのはこれらの列です:
Appraiser 'OntimeSum' 'PastDueSum' 'Ontime + afterdue' '%ontime'
以下のクエリにはすでに最初の 3 つがありますが、他の方法はわかりません。また、それらを理解したり、どこにも例を見つけたりすることはできません。
WITH AppraiserTurnTime AS
(SELECT (v.ContactLastName+ ', ' +v.ContactFirstName) AS Appraiser
,SUM(CASE WHEN oi.SubmittedDate <= oi.AssignedDate THEN 1 ELSE 0 END) AS OnTime
,SUM(CASE WHEN oi.SubmittedDate >= oi.AssignedDate THEN 1 ELSE 0 END) AS PastDue
FROM OrderItems oi
JOIN Vendors v ON v.VendorID = oi.VendorID
JOIN VendorClasses vc ON vc.VendorClassID = v.VendorClassID
WHERE vc.VendorClassID in (6, 3)
GROUP BY ContactFirstName,v.ContactLastName)
SELECT * FROM AppraiserTurnTime