前提
それぞれのテーブルにはこのようなデータが入っています。
◎◎:予約者情報
△△:店舗マスタ
■■:◎◎と△△を照合させて、一致した結果が入っているテーブル
##作ったもの
2つ動くそれぞれで正しい結果が得られるクエリがあります。(テーブル名は伏字にしています)
【①◎◎と△△を照合させて、不一致だったデータを取得するクエリ。】
SELECT ◎◎
FROM ◎◎ LEFT JOIN △△ ON ([△△].[店舗名] = [◎◎].[店舗名])
WHERE [△△].[店舗名] = [◎◎].[店舗名] IS NULL;
【②■■テーブルから月別に必要な情報を取得するクエリ】
SELECT YEAR([■■].[日時]) AS 年, MONTH([■■].[日時]) AS 月, Count(
[■■].受付日時
) AS 総数, Count(
[■■].予約 = '●'
Or Null
) AS 予約, Count(
[■■].実施 = '●'
Or Null
) AS 実施, Count(
[■■].結果 = 'OK'
Or Null
) AS OK人数 INTO 新しいテーブル
FROM ■■
GROUP BY YEAR([■■].[日時]), MONTH([■■].[日時]);
##求めたい結果
【①◎◎と△△を照合させて、不一致だったデータを取得するクエリ。】の実行結果から
【②■■テーブルから月別に必要な情報を取得するクエリ】を実行したいです。
=不一致の結果も月別に集計したいです。
(サブクエリと呼ぶのでしょうか。selectした結果をselectしたいです。)
作ったクエリ
SELECT YEAR([■■].[日時]) AS 年, MONTH([■■].[日時]) AS 月, Count(
[■■].受付日時
) AS 総数, Count(
[■■].予約 = '●'
Or Null
) AS 予約, Count(
[■■].実施 = '●'
Or Null
) AS 実施, Count(
[■■].結果 = 'OK'
Or Null
) AS OK人数 INTO 新しいテーブル
FROM (
SELECT ◎◎
FROM ◎◎ LEFT JOIN △△ ON ([△△].[店舗名] = [◎◎].[店舗名])
WHERE [△△].[店舗名] = [◎◎].[店舗名] IS NULL;
)
GROUP BY YEAR([■■].[日時]), MONTH([■■].[日時]);
調べてみてFROM句の中に、①のselect文を入れてみたのですが
FROM句の構文エラーになります。。。
初歩的な質問で申し訳ありませんが、どなかたお知恵をお貸しください。
よろしくお願いします。
#実行環境
Acceess 2016です。

回答4件
あなたの回答
tips
プレビュー