Ja, konstruer et udtryk, der kun returnerer ordretotalen for adhoc, og 0 for de andre, og et andet, der gør det modsatte, og summer disse udtryk. Dette vil inkludere en række pr. lokation med to kolonner, en for adhoc og en for Contracted...
SELECT Location,
Sum(Case When Contract_ID Is Null Then OrderTotal Else 0 End) AdHoc,
Sum(Case When Contract_ID Is Null Then 0 Else OrderTotal End) Contracted
FROM Orders
GROUP BY Location
hvis du virkelig ønsker separate rækker for hver, så ville en fremgangsmåde være at:
SELECT Location, Min('AdHoc') ContractStatus,
Sum(Case When Contract_ID Is Null
Then OrderTotal Else 0 End) OrderTotal
FROM Orders
GROUP BY Location
Union
SELECT Location, Min('Contracted') ContractStatus,
Sum(Case When Contract_ID Is Null
Then 0 Else OrderTotal End) OrderTotal
FROM Orders
GROUP BY Location
Order By Location