[pgsql-jp: 33407] PostgreSQLによる集計について。

Shinsuke Saitou saitou @ doragon.info
2004年 6月 28日 (月) 21:33:27 JST


初めまして、saitouと申します。

現在、PerlとDBI(Postgre7.4.3)にて集計プログラムを組んでいます。
しかし、SQLの組み方はあっているとおもうんですが
うまくいきません・・・。

もし、SQLに詳しい方がいらっしゃいましたら
どうか、ご教授いただけないでしょうか。

・やりたいことは、大元テーブル(all_master)に各IDが振ってあり
 そのIDと各マスタテーブルのIDをひもづけて名称等を持ってきて
 file名で集計するということをやりたいと思っております。

以下に、テーブル構成・SQLを記します。

■テーブル構成
・all_master
カラム名    型
caria_code   varchar --master_cariaのcaria_codeと
			 master_characterのcaria_codeとリレーション
contents_code varchar --master_contentsのcontents_codeと
			 master_characterのcontents_codeとリレーション
category_code varchar --master_categoryのcategory_idと
			 master_characterのm3_code3とリレーション
file_no	    varchar --master_characterのchar_idと
			 リレーションを貼る
date	       date    --単純に日付で条件を絞る

・master_caria			・master_category
caria_id 	varchar		category_id 	varchar
caria_name	varchar		category_name 	varchar

・master_character		・master_contents
caria_id	varchar		contents_id	varchar
contents_id	varchar		contents_name	varchar
category_id	varchar		type		varchar
char_id		varchar
char_name	varchar

■SQL文
SELECT 
	l.caria_code, cr.caria_name, 
	l.contents_code, ct.contents_name, 
	ch.char_id, ch.char_name, 
	l.file_no, 
	l.category_code, cg.category_name, 
	count(l.file_no) as count 
FROM 
	all_master as l 
	inner join master_caria as cr  on l.caria_code	     = cr.caria_id 
	inner join master_contents as ct on l.contents_code  = ct.contents_id 
	inner join master_category as cg on l.category_code  = cg.category_id 
	inner join master_character as ch on l.file_no	     = ch.file_no 
					and  l.caria_code    = ch.caria_id 
					and  l.contents_code = ch.contents_id 
					and  l.category_code = ch.category_id 
WHERE 
	substr(date,0,8) = '2004-02' and l.contents_code=99999 
GROUP BY 
	l.caria_code, l.contents_code, l.category_code, l.file_no, 
	cr.caria_name, ct.contents_name, cg.category_name ,ch.char_id, 
	ch.char_name ,ch.caria_id, ch.contents_id, cg.category_id 
ORDER BY 
	l.caria_code, l.contents_code, l.category_code, l.file_no;

かなり、長文になってしまい申し訳ありませんが
このSQLのどこがおかしいかご教授できないでしょうか。。

わかりにくいかと思いますが、どうかよろしくお願いいたします。




pgsql-jp メーリングリストの案内