SQL質疑応答スレ 10問目

このエントリーをはてなブックマークに追加
248NAME IS NULL
TABLE test
id | data
---+------
100 | AAA

TABLE hoge
id | value
---+------
100 | 10
100 | 20

TABLE 100
id |val1| val2
---+---+----
100 | 20 | 40
100 | 30 | 60

SELECT a.id, test.data, a.cnt + b.cnt + c.cnt
FROM
(SELECT id, SUM( aa.val1 ) cnt FROM (SELECT id, val1 FROM `100`)aa)a,
(SELECT id, SUM( bb.val2 ) cnt FROM (SELECT id, val2 FROM `100`)bb)b,
(SELECT id, SUM( value ) cnt FROM hoge WHERE id = 100)c,test
WHERE a.id = c.id AND test.id = 100

欲しい結果
id data a.cnt + b.cnt + c.cnt
----------------------------
100 AAA 180

やむなくMySQLのバージョンが5.0.77-logから5.1.22-rcに変更することになり、
5.0.77-logで動作していた上記のSQLを実行すると
#1140 - Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
と怒られてしまいます。。。
今も色々試しているのですがGROUP BYをうまく使えません。
申し訳ないのですが教えて頂けませんか><