[前][次][番号順一覧][スレッド一覧]

mysql:14835

From: 柴垣 <柴垣 <akiro@xxxxxxxxxx>>
Date: Fri, 08 May 2009 00:42:35 +0900
Subject: [mysql 14835] Re: テーブルごとの合計を求めるには

渡辺さん、平塚さん、ありがとうございました。


渡辺さんのコード、(allだけこちらで追加)

> select m.name, sum(m.uri), sum(m.nyu)
> from
> (
> (select name, kingaku as uri, 0 as nyu from u)
> union all
> (select name, 0 as uri, kingaku as nyu from n)
> ) m
> group by m.name

そして平塚さんのコード、

> select T.name, UG.UriageGokei, NG.NyukinGokei
> from
> T
> left outer join
> (select name, sum(kingaku) UriageGokei from U group by name) UG
> on T.name = UG.name
> left outer join
> (select name, sum(kingaku) NyukinGokei from N group by name) NG
> on T.name = NG.name

ともに、求めたい結果セットが得られました。


渡辺さんが、以下のように書かれていましたが、

> なんでSQLでやらなければいけないか、疑問ですが・・・
> 普通は別々に習得してプログラムでマージするなりする方が単純
> で解りやすく、バグも少ないしし、仕様変更にも強いと思いますよ。

確かにその通りだと思います。今回は既存のプログラムの修正だったため
sqlの書換えだけでなんとかならないかと思ったのですが、上記のSQLの
ようにサブクエリーが必要となることを考えると、かえって複雑になって
しまう気がします。どうもありがとうございました。


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

 柴垣  akiro@xxxxxxxxxx

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/



[前][次][番号順一覧][スレッド一覧]

     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]