[前][次][番号順一覧][スレッド一覧]

mysql:2345

From: (遠藤 俊裕) <<endo@xxxxxxxxxx>>
Date: Fri, 04 Aug 2000 14:49:43 +0900
Subject: [mysql 02345] 集計のクエリーの書き方

遠藤です。

お教えください。

以下のようなテーブルがあるとします。

mast [create table mast ( code integer, point integer, name char (10)) ]
  code: integer;
  point: integer;
  name: char(10);

tran [create table tran ( code integer, check char(1)) ]
  code: integer;
  check: char(1);

ここでデータが以下のようになっています。

mast
  1, 10, aaa
  2, 20, bbb
  3, 30, ccc

tran
  1, 0
  1, 0
  1, 1
  1, 1
  2, 1
  3, 0
  3, 0

この状態で結果を

   aaa, 10, 4, 40, 2, 20
   bbb, 20, 1, 20, 1, 20
   ccc, 30, 2, 60, 0,  0

としたいのですが、どうすれば良いのでしょうか?
要するにチェック項目によって内数をカウントしたいのです。

以下の SQL で
   aaa, 10, 4, 40
   bbb, 20, 1, 20
   ccc, 30, 2, 60
とは出来たのですが、これ以上、どうしてもわかりません。

SELECT mast.name, mast.point, COUNT(mast.name), SUM(mast.point) FROM tran
LEFT JOIN mast ON mast.code=tran.code GROUP BY mast.name, mast.point
ORDER BY mast.name

出来るだけ方言を使わずに SQL のみの機能で何とかならないものかと
悩んでおります。SQL を数本使ってテンポラリテーブルを作るのでも
最悪構いません。その場合は効率の良い方法を知りたいです。
よろしくご教授ください。m(_ _)m

[前][次][番号順一覧][スレッド一覧]

->    2345 2000-08-04 14:49 [<endo@xxxxxxxxxx>   ] 集計のクエリーの書き方                  
      2346 2000-08-04 15:56 ┗[とみたまさひろ <tomm]                                       
      2352 2000-08-05 22:47  ┗[<endo@xxxxxxxxxx>   ]