この単純な JOIN クエリで結果のないテーブルが返される理由を誰か教えてもらえますか? countINTmonth クエリと countDEPTmonth クエリの両方を別々に実行すると、期待どおりの結果が得られます。ただし、単純な JOIN クエリを実行すると、列名はあるがデータがないテーブルが表示されますが、エラー メッセージも表示されません。
CountINTmonth クエリ
SELECT Count(clients.ssn) AS CountofIntakes, month(clients.prog_start) AS Month2, year(clients.prog_start) AS Year2
FROM clients
WHERE clients.prog_start BETWEEN [Enter Start Date] AND [Enter End Date]
GROUP BY year(clients.prog_start), month(clients.prog_start)
ORDER BY year(clients.prog_start) DESC , month(clients.prog_start) DESC;
CountDEPTmonth クエリ
SELECT Count(clients.ssn) AS CountOfDepartures, month(clients.[departure date]) AS Month1, year(clients.[departure date]) AS year1
FROM clients
WHERE clients.[departure date] BETWEEN [Enter Start Date] AND [Enter End Date]
GROUP BY year(clients.[departure date]), month(clients.[departure date])
ORDER BY year(clients.[departure date]) DESC , month(clients.[departure date]) DESC;
前の 2 つを結合するクエリ
SELECT countdeptmonth.countofdepartures, countintmonth.countofintakes, countdeptmonth.month1, countdeptmonth.year1
FROM countdeptmonth
INNER JOIN
countintmonth
ON (countdeptmonth.year1=countintmonth.year2 AND countdeptmonth.month1=countintmonth.month2)
ORDER BY countdeptmonth.year1 DESC, countdeptmonth.month1 DESC
JOIN を LEFT JOIN に変更すると、countofintakes 列が空であることを除いてデータが表示されます。JOIN を RIGHT JOIN に変更すると、データを持つ列は countofintakes だけです。
テーブルに関する注意
事項 CLIENTS テーブルには、さまざまなデータ ポイントを持つ一連の列があります。SSN は主キーです。prog_start は、治療プログラムを開始した日付フィールドです。[出発日] は、プログラムを離れた日付フィールドです。[開始日を入力してください] と [終了日を入力してください] は、ユーザーがクエリを実行するときに入力する日付範囲である必要があります。日付は両方のクエリで同じである必要があります。どんな助けでも大歓迎です!