一連の結合ですべての (米国) 州の数を一覧表示するクエリを作成しようとしています。これにより、残りのデータには表示されないテーブルで定義されたすべての州に 0 が表示されます。
これは私がこれまでに思いついたものです:
SELECT s.StateName,s.StateNum, COUNT(s.StateNum) as [count]
FROM States AS s
INNER JOIN StateIncludeInClueReport as scr ON scr.statenum = s.StateNum
LEFT JOIN Staging_Policy sp ON CONVERT(TINYINT,SUBSTRING(sp.ProducerCode,1,2)) = s.StateNum
left JOIN (SELECT MIN(sip.QuoteId)AS QuoteId,sip.rmId FROM Staging_Policy sip GROUP BY sip.RMID) as sq ON sq.QuoteId = sp.QuoteID
INNER JOIN dbo.ResultMaster AS rm ON rm.rmID = sq.RMID
INNER JOIN dbo.CreditReport AS cr ON rm.rmID = cr.rmID AND cr.PolType = 'AUTO 3.0'
GROUP BY CONVERT(TINYINT,SUBSTRING(sp.ProducerCode,1,2)), s.StateName, s.StateNum
ORDER BY s.StateNum
しかし、残りのデータに表示されないレコードはまだ表示されていません。
指定された scema とサンプル データを使用して sqlFiddle を作成しました。
現在の出力は次のとおりです。
STATENAME STATENUM COUNT
Kentucky 16 14
Ohio 34 4
望ましい出力は次のようになります。
STATENAME STATENUM COUNT
Arkansas 3 0
Georgia 10 0
Indiana 13 0
Kentucky 16 14
Missouri 24 0
Ohio 34 4
Tennessee 41 0
Texas 42 0
Virginia 45 0
私は実際には SQL の専門家ではありませんが、これは本当に私に問題を引き起こしています。誰かが私が間違っていることについていくつかの洞察を持っていますか?