0

4 つのテーブルがあり、各テーブルのすべての価格の合計を計算する必要があります

1 テーブルスコム

 _________________________________
 | id | noskom      | price_skom |
 |____|_____________|____________|
 |  1 | 1           |   10       | 
 |  2 | 2           |   30       |  
 |__3_|_3___________|___50_______|

2 テーブルスコップ

 ______________________________________________
 | id | noskom      | noskop     | price_skop |
 |____|_____________|____________|____________|
 |  1 | 1           |   1        |   10       |  
 |  2 | 1           |   2        |   20       |  
 |  3 | 2           |   3        |    5       | 
 |  4 | 2           |   4        |   30       |  
 |____|_____________|____________|____________|

3 テーブル npbm

 ___________________________________________________________
 | id | noskom      | noskop     | nonpbm     | price_npbm |
 |____|_____________|____________|____________|____________|
 |  1 | 1           |   1        |   1        |   10       | 
 |  2 | 1           |   1        |   2        |   20       |   
 |  3 | 1           |   2        |   3        |    5       | 
 |  4 | 1           |   2        |   4        |    5       | 
 |  5 | 2           |   1        |   5        |   10       |   
 |  6 | 2           |   2        |   6        |   10       |  
 |  7 | 2           |   2        |   7        |   10       |       
 |____|_____________|____________|____________|____________|

4 テーブル npbp

 ________________________________________________________________________
 | id | noskom      | noskop     | nonpbm     | nonpbp     | price_npbp |
 |____|_____________|____________|____________|____________|____________|
 |  1 | 1           |   1        |   1        |    1       |   10       | 
 |  2 | 1           |   1        |   2        |    2       |   20       |   
 |  3 | 1           |   2        |   3        |    3       |    5       | 
 |  4 | 1           |   2        |   4        |    4       |    5       | 
 |  5 | 2           |   1        |   5        |    5       |   10       |   
 |  6 | 2           |   2        |   6        |    6       |   10       |  
 |  7 | 2           |   2        |   7        |   10       |   10       |       
 |____|_____________|____________|____________|____________|____________|

そして、私はこのようなクエリの助けが必要です

 select sum(price_skom),sum(price_skop),sum(price_npbm),sum(price_npbp) from each table group by noskom 

このような結果が欲しい

noskom によるテーブル結果グループ

 ________________________________________________________________
 | id | noskom      | sum_skom | sum_skop | sum_npbm | sum_npbp |
 |____|_____________|__________|__________|__________|__________|
 |  1 | 1           |   10     |   30     |    40    |   90     |  
 |  2 | 2           |   30     |   35     |    30    |   70     |      
 |__3_|_3___________|___50_____|__________|__________|__________|

mysql クエリについて教えてください

4

2 に答える 2

1

対応する noscom のない行も取得するには、外部結合が必要です。

select sk1.id, sk1.noskom,sum(price_skom),sum(price_skop),sum(price_npbm),sum(price_npbp) 
from skom sk1 left outer join skop on (sk1.id=skop.noskom),
     skom sk2 left outer join npbm on (sk2.id=npbm.noskom),
     skom sk3 left outer join npbp on (sk3.id=npbp.noskom)
Where sk1.id=sk2.id and sk2.id=sk3.id
group by  sk1.id,sk1.noskom
于 2012-12-20T11:17:35.960 に答える
1

このようなもの:

select 
noskom, 
sum (pskom) as sum_skom, 
sum (pskop) as sum_skop, 
sum (pnpbm) as sum_npbm, 
sum (pnpbp) as sum_npbp

from
(
select noskom, sum (price_skom) as pskom, 0 as pskop, 0 as pnpbm, 0 as pnpbp from skom group by noskom
union all
select noskom, 0, sum (price_skop), 0, 0 from skop group by noskom
union all
select noskom, 0, 0, sum (price_npbm), 0 from npbm group by noskom
union all
select noskom, 0, 0, 0, sum (price_npbp) from npbp group by noskom
) as p

group by noskom
于 2012-12-20T11:17:58.083 に答える