mysql:14832
From: Shuji Watanabe <Shuji Watanabe <shuji.w6e@xxxxxxxxxx>>
Date: Thu, 7 May 2009 11:50:21 +0900
Subject: [mysql 14832] Re: テーブルごとの合計を求めるには
渡辺です。 なんでSQLでやらなければいけないか、疑問ですが・・・ select m.name, sum(m.uri), sum(m.nyu) from ( (select name, kingaku as uri, 0 as nyu from u) union (select name, 0 as uri, kingaku as nyu from n) ) m group by m.name こんな感じで可能は可能だと思います。 #動作は未確認です 普通は別々に習得してプログラムでマージするなりする方が単純で解りやすく、バグも少ないしし、仕様変更にも強いと思いますよ。 2009/05/07 11:35 柴垣 <akiro@xxxxxxxxxx>: > 柴垣といいます。いつも勉強させていただいています。 > sqlの書き方の投稿が続いているので、それに乗っかって・・ > > 以下のような3つのテーブルがあったときに > > 名前テーブル:T > Name > A > B > > 売上テーブル:U > Name Kingaku > A 1000 > A 2000 > B 2000 > B 3000 > B 1000 > > 入金テーブル:N > Name Kingaku > A 1000 > A 1000 > A 2000 > B 3000 > B 4000 > > 次のようなテーブルごとの集計を一つのクエリーで作る方法は > あるのでしょうか。 > > 求めたい結果セット > Name UriageGokei NyukinGokei > A 3000 4000 > B 6000 7000 > > > ※ 例えば次のように書くと、重複して合計を取ってしまいます。 > select T.Name, > sum(U.Kingaku) as UriageGokei, > sum(N.Kingaku) as NyukinGokei > from T > left join U on T.Name=U.Name > left join N on T.Name=N.Name > group by T.Name; > > > _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ > > 柴垣 akiro@xxxxxxxxxx > > _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ > > > > -- ================================ Shuji Watanabe (skypeId: shuji.w6e) Blog: http://d.hatena.ne.jp/shuji_w6e/ Labo: http://www.deathmarch.jp/ Community: http://www.sapporo-java.org/
14831 2009-05-07 11:35 [柴垣 <akiro@xxxxxxxx] テーブルごとの合計を求めるには -> 14832 2009-05-07 11:50 ┣[Shuji Watanabe <shuj] 14833 2009-05-07 12:21 ┗[HIRATSUKA Sadao <hir] 14835 2009-05-08 00:42 ┗[柴垣 <akiro@xxxxxxxx] 14836 2009-05-08 02:00 ┗[ユウシステム 糸瀬 <i] 14837 2009-05-08 09:42 ┗[柴垣 <akiro@xxxxxxxx] 14838 2009-05-08 10:00 ┗[Shuji Watanabe <shuj] 14839 2009-05-08 10:59 ┗[ユウシステム 糸瀬 <i]