私は今月4月までのデータしか持っていません。だから私はLEFT JOINを使用してカレンダーテーブルに参加して年末まで残りの月を持っていこうとしています。 。 カレンダーテーブルにYearNumber、MonthNumber、およびMonthNameがあります。 私は何が間違っていますか?LEFT JOINがなぜNULL値を持つMonthフィールドを持って来ないのですか
SELECT
Underwriter,
sum(case when TransactionType IN ('Policy', 'Reinstatement') then 1 ELSE 0 END) as PoliciesBound,
b.MonthNum,
b.YearNum,
b.MonthName
FROM tblCalendar b
LEFT JOIN Test_Plaza_ProductionReport a ON b.MonthNum=Month(a.EffectiveDate) AND b.YearNum = YEAR(a.EffectiveDate)
--FROM Test_Plaza_ProductionReport
WHERE Year(a.EffectiveDate)=2016 AND Underwriter <>'Batcheller, Jerry'
GROUP BY Underwriter,
b.YearNum,
b.MonthName,
b.MonthNum
私はLEFT JOINを使って、何をしないのですか?
あなたは 'where'基準で'外部結合 'を否定しています。代わりにその条件を 'join'に移してください。それはあなたのために働くはずです。 – sgeddes
条件を結合に移動しますか?どういう意味ですか?ありがとう – Oleg
ヒント:意味のあるエイリアスを使用して、すべての列に適用します。 「Underwriter」と「TransactionType」がどこから来たのかは不明である。 '...をtblCalendarからCalを使用して、外部結合Test_Plaza_ProductionReportをProdRpt ... 'にしました。 'C'や' PR'でも 'a'や' b'よりも便利です。 – HABO