Да, създайте израз, който връща поръчкатаtotal само за adhoc и 0 за останалите, и друг, който прави обратното, и сумирайте тези изрази. Това ще включва по един ред на местоположение с две колони, една за adhoc и една за договорено...
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
ако наистина искате отделни редове за всеки, тогава един подход би бил:
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