こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

複数テーブルのGROUP BY の使い方を教えて下さい。

いつもお世話になっております。
3日悩んだのですが、どうにもわからないので
投降させて頂きました。
どうかご指導よろしくお願いいたします。

二つのテーブルがあります
テーブル名(uriage)
uriage_id
syouhin_id
year
1gatu
2gatu
3gatu
4gatu
5gatu
6gatu
7gatu
8gatu
9gatu
10gatu
11gatu
12gatu

テーブル名(syouhin)
syouhin_id
siiresaki

求めたい情報
year │siiresaki │1gatu │2gatu │3gatu……

GROUP BY を使えばよいのかなと思って下記の
SQL文で試してみました。

SELECT year,syuhin_is,1gatu,2gatu…(略)12gatu
FROM uriage,syouhin
WHERE uriage.syouhin_id = syouhin.syouhin_id
GROUP BY siiresaki
ORDER BY syouhin.siiresaki,uriage.year

すると、仕入先でグループ化はされたのですが、
年度まで一緒にグループ化されてしまうのです。

年度ごとの、仕入先でグループ化して、
それぞれの月ごとで加算させるには
どのようにしたら良いのでしょうか・・・?

SUMもいるのだ、と思って下記の文でも
試してみたのですが、こちらはエラーが返ってきました。
SELECT year,siiresaki
SUM(1gatu,2gatu…(略)12gatu)
FROM uriage,syouhin
WHERE uriage.syouhin_id = syouhin.syouhin_id
GROUP BY (year,siiresaki)

どうかご指導よろしくお願いいたします。

投稿日時 - 2005-04-05 05:39:49

QNo.1312276

すぐに回答ほしいです

質問者が選んだベストアンサー

>SELECT year,siiresaki
>SUM(1gatu,2gatu…(略)12gatu)

sibazukeさんが書かれたのをコピって直したんで気がつきませんでしたが、
siiresaki
のあとにカンマが抜けてますね。

投稿日時 - 2005-04-05 13:05:29

お礼

ご指導ありがとうございます。
何度もすみません。
siiresakiの後ろにカンマを付けたのですが、今度は

ERROR 1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL s
erver version for the right syntax to use near 'FROM uriage,syouhin
WHERE uriage.syouhin_id = syouhin.syouhin_id

と言うエラーが返ってきました。
テーブル名およびカラム名は間違っていない
みたいなのですが、なにが悪いのでしょうか・・・?

何度もすみません。
どうかよろしくお願いいたします。

投稿日時 - 2005-04-05 13:57:38

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

>テーブル名およびカラム名は間違っていない
>みたいなのですが、なにが悪いのでしょうか・・・?

ちょっとわかりませんねぇ。
エラーになったSQL、全部貼り付けていただけませんか?

投稿日時 - 2005-04-05 16:11:30

補足

こんにちは。
例に挙げさせていただいたテーブルは、必要なカラムのみ
乗せていた状態で、ほかにもたくさんカラムがあるので、
SQL文を載せる為に、例と全く構造のテーブルを作り直して試してみたのです。

すると、すんなりエラーも出ずに表示されました。

実行したいテーブルに問題があるみたいです。
原因はまだわからないのですが、わからないからといって
すぐにお尋ねするのは、勉強している姿勢として
いかがなものかと思いますので、ちょっと探してみます。

私なりに原因を探してみて、それでもわからなかったら
またご指導願えますでしょうかm(__)m

投稿日時 - 2005-04-05 17:53:32

お礼

こんにちは。
表示できるようになりました。
ご指導、本当にありがとうございました。

ミスしていたのはテーブル構造でもなんでもなくって
単にSUM(12gatu), と、最後のSUMの行にコンマが
多かった為でした・・・・_| ̄|○

毎回、コピペではなく、SQLコマンドを指で
覚えようと、手打ちで入力していたのが
災いしたようです。
盆ミスでお騒がせしてしまって、申し訳ありませんでした。

このたびは本当にありがとうございました。

投稿日時 - 2005-04-06 08:30:48

ANo.1

>SELECT year,siiresaki
>SUM(1gatu,2gatu…(略)12gatu)
>FROM uriage,syouhin
>WHERE uriage.syouhin_id = syouhin.syouhin_id
>GROUP BY (year,siiresaki)

単純にsumの書き方が間違ってるだけかと。

SELECT year,siiresaki
SUM(1gatu),SUM(2gatu),…(略),SUM(12gatu)
FROM uriage,syouhin
WHERE uriage.syouhin_id = syouhin.syouhin_id
GROUP BY year,siiresaki

投稿日時 - 2005-04-05 10:23:26

お礼

taka_tetsuさま
ご指導ありがとうございます。
SUMをご指導いただいた通りに書き直してみたのですが

ERROR 1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL s
erver version for the right syntax to use near 'SUM(1gatu),SUM(2gatu),SUM(3gatu),SUM(4gatu)
,SUM(5ga

というエラーが返ってきてしまいました。

環境は
MYSQL4.0
PHP5
を使用しています。

どうかご指導よろしくお願いいたします。

投稿日時 - 2005-04-05 12:42:37

あなたにオススメの質問