Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


206 / 2272 ツリー ←次へ | 前へ→

【12559】アクセスで違うカウント数を1度のクエリにて表示 TON 14/6/4(水) 13:32 質問[未読]
【12560】Re:アクセスで違うカウント数を1度のクエリ... hatena 14/6/4(水) 16:38 回答[未読]
【12563】Re:アクセスで違うカウント数を1度のクエリ... ton 14/6/8(日) 16:04 お礼[未読]

【12559】アクセスで違うカウント数を1度のクエリ...
質問  TON  - 14/6/4(水) 13:32 -

引用なし
パスワード
   下記のようなテーブルから、インボイスはDISTINCTの件数、ITEMはライン数でカウントを取引先毎にまとめたいのですが、1つのSQLにて可能でしょうか?

テーブルINVOICE
DATE    cd_dealer    invoice        pno
    A        A0001        X
    A        A0001        Y
    A        A0002        X
    B        B0001        X
    B        B0002        X


ほしい結果

取引先    インボイス数 ライン数
A    2        3
B    2        2

現状では、最初に取引先とインボイスでGROUP化してITEMをカウントしたクエリと
インボイスを取引先毎にGROUP化してDISTINCTカウントしたクエリを取引先で結合した
クエリにて取り出しています。

クエリ1
SELECT [invoice].[date],
    [invoice].[cd_dealer],
    [invoice].[invoice],
    Count([invoice].[pno]) AS pnoのカウント
FROM invoice
GROUP BY [invoice].[date],
     [invoice].[cd_dealer],
     [invoice].[invoice];


クエリ2
SELECT count(*) AS inv, dlcd
FROM  [SELECT distinct invoice,
        cd_dealer as dlcd        
    FROM invoice
    GROUP BY invoice,
         cd_dealer
               ]. AS T
GROUP BY dlcd;


クエリ3
SELECT n_inv.inv AS inv数,
    n_inv.dlcd,
    Sum(invoice_npn.pnoのカウント) AS ライン数
FROM n_inv INNER JOIN invoice_npn ON n_inv.dlcd = invoice_npn.cd_dealer
GROUP BY n_inv.inv, n_inv.dlcd;


よろしくお願いします。

【12560】Re:アクセスで違うカウント数を1度のクエ...
回答  hatena  - 14/6/4(水) 16:38 -

引用なし
パスワード
   サブクエリを使っていいのなら、

SELECT
T.cd_dealer,
Count(T.invoice) AS inv数,
Sum(T.pnoのカウント) AS ライン数
FROM
(SELECT
 cd_dealer, invoice, Count(pno) AS pnoのカウント
 FROM invoice
 GROUP BY cd_dealer, invoice) AS T
GROUP BY T.cd_dealer;

【12563】Re:アクセスで違うカウント数を1度のクエ...
お礼  ton  - 14/6/8(日) 16:04 -

引用なし
パスワード
   ▼hatena さん:
ありがとうございました。
遅くなってすみません。

206 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078190
(SS)C-BOARD v3.8 is Free