ACCESSで工事の進捗管理を行いたいと思っています。
受注ID 受注金額 前月迄売上 出来高% 受注ID 当月売上 出来高%
SELECT [Q_売上(請負)前月迄].受注ID, [Q_売上(請負)前月迄].受注金額, [Q_売上(請負)前月迄].前月迄, [Q_売上(請負)前月迄].出来高, [Q_売上(請負)当月].受注ID, [Q_売上(請負)当月].当月, [Q_売上(請負)当月].出来高
FROM [Q_売上(請負)前月迄], [Q_売上(請負)当月];
画像の通り当月の売上が「18170-3」しかない場合に、上2行の当月売上と出来高を空欄に
したいのすが、その方法が分かりません。
テーブルとクエリは次の通りです。
テーブル t受注一覧
テーブル t売上明細
クエリ Q_売上(請負)前月迄
SELECT t受注一覧.受注ID, t受注一覧.受注金額, Sum(t売上明細.売上金額) AS 前月迄, [前月迄]/[受注金額] AS 出来高
FROM t売上明細 INNER JOIN t受注一覧 ON t売上明細.受注ID = t受注一覧.受注ID
WHERE (((t売上明細.日付)<#1/1/2020#))
GROUP BY t受注一覧.受注ID, t受注一覧.受注金額
HAVING (((t受注一覧.受注ID) Like "18170*"));
クエリ Q_売上(請負)当月
SELECT t受注一覧.受注ID, t受注一覧.受注金額, Sum(t売上明細.売上金額) AS 当月, [当月]/[受注金額] AS 出来高
FROM t売上明細 INNER JOIN t受注一覧 ON t売上明細.受注ID = t受注一覧.受注ID
WHERE (((t売上明細.日付)>=#1/1/2020# And (t売上明細.日付)<#2/1/2020#))
GROUP BY t受注一覧.受注ID, t受注一覧.受注金額
HAVING (((t受注一覧.受注ID) Like "18170*"));
最終的には、
受注ID 受注金額 前月迄売上 出来高% 受注ID 当月売上 出来高% 累計売上 出来高%
のような形にできればと思っています。
よろしくお願いします。
WHERE句を使わずに、売上金額フィールドを複製してそれぞれに抽出条件を設定し集計するといいと思いますよ
返信ありがとうございます。
売上金額フィールドの複製 が勉強不足で良く分かりません。
新規のクエリで上記コードをそのまま貼り付けてみましたが
受注ID別に表示させるための 「like "18170*"」 の入力場所がよく分かりませんでした。
18170の現場を表示させる時には
---------前月迄売上 当月売上 累計
18170-1
18170-2
18170-3
というように表示させたく、売上明細にはそれ以外にも複数の受注IDの売上が入力されています。
売上金額を3列に増やして各列に条件を付けて集計しようということです
t売上明細を元に一部抜粋すると次のようなデータを集計(合計)する形になります
思った通りの形になりました。
本当にありがとうございました。