我的查詢非常適用於查找具有實際值的記錄,但是,我還需要查詢以顯示具有空值的記錄。到目前爲止,我嘗試重新創建此查詢以顯示空值,結果至少丟失了我的結果列中的一列,所以現在我正在尋求幫助。SQL查詢顯示良好的記錄以及空記錄
這是迄今爲止我的查詢:
SELECT sq.*, sq.TransactionCountTotal - sq.CompleteTotal as InProcTotal from
(
select
c.CustName,
t.[City],
sum (t.TransactionCount) as TransactionCountTotal
sum (
case
when (
[format] in (23,25,38)
or [format] between 400 and 499
or format between 800 and 899
)
then t.TransactionCount
else 0
end
) as CompleteTotal
FROM [log].[dbo].[TransactionSummary] t
INNER JOIN [log].[dbo].[Customer] c
on t.CustNo = c.CustNo
and t.City = c.City
and t.subno = c.subno
where t.transactiondate between '7/1/16' and '7/11/16'
group by c.CustName,t.City
) sq
這是目前什麼我的查詢結果表明:
CustName City InProcTotal TransactionCountTotal Complete Total
Cust 1 City(a) 23 7 30
Cust 2 City(b) 74 2 76
Cust 3 City(c) 54 4 58
這是我希望我的查詢結果顯示什麼:
CustName City InProcTotal TransactionCountTotal Complete Total
Cust 1 City(a) 23 7 30
Cust 2 City(b) 74 2 76
Cust 3 City(c) 54 4 58
Cust 4 City(d) 0 0 0
Cust 5 City(e) 0 0 0
當我使用'右JOIN'我得到一些額外的結果,但他們表現出CUSTNAME = NULL時,我應該是將sum(t.TransactionCount)作爲TransactionCountTotal'等於NULL – jwabsolution
按照我的說明嘗試LEFT JOIN。 –
對不起,我嘗試了Left Join,並在下面的答案中分享了結果。我覺得添加有關Right Join的信息可能也有幫助,所以我在這個答案下發布了這些結果。 – jwabsolution