Microsoft Access Club Access超初心者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトル集計クエリで集計値がないフィールドについても集計結果を表示したい
記事No83303
投稿日: 2018/05/08(Tue) 10:59
投稿者むさし
OS:Windows10
Access Version:ACCESS2016

【集計DB項目】
営業拠点(東北、関東、関西、九州)、受注見込月2018/04〜2019/03、確度(A,B,C,D,E)、見込金額(〇〇万円)

【やりたい事】
営業拠点別月別の受注予測金額を集計値として集計。
※予測金額は確度A,B,Cのみ集計対象

【現状】
@集計クエリにて営業拠点別月別の予測金額を集計出来ている。

A一方各営業拠点毎に全ての営業見込み月に対して予測金額が集計される訳でない為、本当は各拠点毎に2018/04〜2019/03全て集計値として出したいが歯抜けになっている。

B集計DBと別に各拠点別受注見込月のマスタDBを作成しマスタDBから集計DBへ外部結合してマスタDBに含まれる全ての営業拠点、受注見込月での集計DBの集計を実施しても@A同様の結果しか出ない状況。


皆様お忙しい中申し訳ありませんがご教授頂けたら幸いです。

タイトルRe: 集計クエリで集計値がないフィールドについても集計結果を表示したい
記事No83304
投稿日: 2018/05/08(Tue) 18:15
投稿者よろずや
その集計クエリを見せてください。

クエリをSQLビューで開いて、中のSQL文を提示してください。

タイトルRe^2: 集計クエリで集計値がないフィールドについても集計結果を表示したい
記事No83305
投稿日: 2018/05/08(Tue) 22:31
投稿者むさし
> その集計クエリを見せてください。
>
> クエリをSQLビューで開いて、中のSQL文を提示してください。

遅くなりましたが下記SQLです。
M_拠点別受注見込月が各拠点(集計区分)と受注見込月のマスタとなります。

SELECT M_拠点別受注見込月.集計区分, M_拠点別受注見込月.受注見込月, Sum(案件管理一覧表(公共部門).見込受注金額) AS 見込受注金額の合計
FROM M_拠点別受注見込月 LEFT JOIN 案件管理一覧表(公共部門) ON (M_拠点別受注見込月.集計区分 = 案件管理一覧表(公共部門).集計区分) AND (M_拠点別受注見込月.受注見込月 = 案件管理一覧表(公共部門).受注見込月)
WHERE (((案件管理一覧表(公共部門).Status)<>"90:立消え/見送り(客先都合)" And (案件管理一覧表(公共部門).Status)<>"50:受注" And (案件管理一覧表(公共部門).Status)<>"99:失注(不参加・辞退含む)") AND ((案件管理一覧表(公共部門).受注確度)="B:80%" Or (案件管理一覧表(公共部門).受注確度)="A:100%" Or (案件管理一覧表(公共部門).受注確度)="C:60%"))
GROUP BY M_拠点別受注見込月.集計区分, M_拠点別受注見込月.受注見込月
ORDER BY M_拠点別受注見込月.集計区分 DESC , M_拠点別受注見込月.受注見込月;

タイトルRe^3: 集計クエリで集計値がないフィールドについても集計結果を表示したい
記事No83306
投稿日: 2018/05/10(Thu) 00:09
投稿者mayu
> 各拠点毎に2018/04〜2019/03全て集計値として出したいが歯抜けになっている

記事No: 83305 のSQLは、データベースエンジンに対し
  ON句での結合 → 右側テーブルへの抽出条件
の順に評価させているからでしょう。

解決方法は2通り。
( 以下どちらのロジックもデザインビューでは作成できません )

【 1 】
--------------------------------------------------------------
右側テーブルの抽出条件 → ON句での結合 の順で評価させるよう
SQL文の中にインラインビューを組み込む
--------------------------------------------------------------

SELECT x.集計区分
     , x.受注見込月
     , Sum( y.見込受注金額 ) As 見込受注金額の合計
FROM M_拠点別受注見込月 x
LEFT JOIN
(
    SELECT 集計区分
         , 受注見込月
         , 見込受注金額
    FROM [案件管理一覧表(公共部門)]
    WHERE Status NOT IN 
          ( 
              '90:立消え/見送り(客先都合)'
            , '50:受注'
            , '99:失注(不参加・辞退含む)'
          ) 
      AND 受注確度 IN ( 'B:80%', 'A:100%', 'C:60%' )
) y
ON x.集計区分   = y.集計区分 AND
   x.受注見込月 = y.受注見込月
GROUP BY x.集計区分
       , x.受注見込月
ORDER BY x.集計区分 DESC
       , x.受注見込月 ;


【 2 】
--------------------------------------------------------------
ON句に結合条件と抽出条件の両方を記述する
--------------------------------------------------------------

SELECT x.集計区分
     , x.受注見込月
     , Sum( y.見込受注金額 ) As 見込受注金額の合計
FROM M_拠点別受注見込月 x
LEFT JOIN [案件管理一覧表(公共部門)] y
ON
(
   x.集計区分   = y.集計区分                       AND
   x.受注見込月 = y.受注見込月                     AND
   y.受注確度 IN ( 'B:80%', 'A:100%', 'C:60%' ) AND
   y.Status NOT IN 
            ( 
                '90:立消え/見送り(客先都合)'
              , '50:受注'
              , '99:失注(不参加・辞退含む)'
            ) 
)
GROUP BY x.集計区分
       , x.受注見込月
ORDER BY x.集計区分 DESC
       , x.受注見込月 ;


なお、むさしさんのクエリは
案件管理一覧表 の Status と 受注確度 どちらのフィールドも
Nullになることは無いという前提になっていますので
そのこともお忘れなきよう。

タイトルRe^4: 集計クエリで集計値がないフィールドについても集計結果を表示したい
記事No83307
投稿日: 2018/05/11(Fri) 13:23
投稿者むさし
mayu様

お忙しい中ご教授頂き有難う御座います。
無事解決出来ました♪

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る