2008-08-27 15 views
3

私は合計する必要があるフィールドが1つあります。 そのフィールドはグループaまたはグループの一部になることができます 最後に、すべてのグループaとグループbについて集計されたアイテム種類によって項目の合計を返す

私はグループ化と言っていますが、別のテーブルにLEFT OUTER JOINがあることを意味します。前のテーブルにアイテムのタイプがあり、結合されているグループにはこのアイテムタイプに対して割り当てられたグループがあります

私は少し新しいSQLに私はあなたに私に与えてくれたものを試してみるつもりです

私はまだ近くに近づいているように感じる私はそれらを分離することができますが、私はいくつかのLEFT OUTER JOINが関与しているので、同じ列に合計するために両方のグループを持つ必要がある問題

タイラーのルックス、それがうまくいくかもしれないように、あまりにも私はそれをハッシュしようとしています本当の速い

アランさんは、移動するための方法のようですが、私はたぶん私は理解していないよ

答えて

4

もう少しそれをtweekする必要があります何を求めているのか複雑ですが...これはしないでください。

SELECT groupname, SUM(value) 
FROM items 
WHERE groupname IN ('a', 'b') 
GROUP BY groupname 

そして、あなたはこれがどうなる属するのか、項目Bその気にしない場合:

SELECT SUM(value) 
FROM items 
WHERE groupname IN ('a', 'b') 
0

あなたは

SELECT column,SUM(column) FROM table GROUP BY column 
0

のようなものは、(タイラーのことですしたいです答え)質問は何を意味しましたか?

SELECT sum(item), groupingField FROM someTable GROUP BY groupingField 

かさえ:

sum(item) |  groupingField 
-------------+----------------------- 
71   |   A 
82   |   B 

質問者、おそらくあなたは意味または私はoversimplifyingてる場合はこれを明確でした。このような結果が得られます

SELECT count(*), item FROM someTable GROUP BY item 

0

これを試してみてください:

SELECT B.[Group], COUNT(*) AS GroupCount 
FROM Table1 A 
LEFT JOIN Table2 B ON B.ItemType=A.ItemType 
GROUP BY B.[Group] 
関連する問題