2012-02-27 47 views
2

我有這樣的查詢:如何在一個查詢中合併多個SUM?

SELECT *, SUM(ss.rank) as group_sum 
FROM Standard s, s.SubStandard ss 
GROUP BY s.id 

的問題是我想有SUM(s.rank) as total_rank在此查詢,這怎麼可能?

+0

什麼問題 – mgraph 2012-02-27 21:23:27

+0

請提供有關(它們之間字段,數據和關係)的表的詳細信息 – 2012-02-27 21:24:19

+0

這是我的表:標準(編號,標題,等級),SubStandard(編號,標題,等級,standard_id) – samra 2012-02-27 21:39:25

回答

1
Just Try: 

SELECT *, SUM(ss.rank) as group_sum ,SUM(s.rank) as total_rank 
FROM Standard s, s.SubStandard ss on s.id=ss.sid // => replace with actual column 
GROUPBY s.id 

如果不同組請使用union

+0

it dosent工作,因爲我的不同羣... – samra 2012-02-27 21:37:45

+0

然後使用聯合查詢 – 2012-02-27 21:42:33

+0

謝謝,它的作品! – samra 2012-02-27 22:53:09

1

列出您的各個列(而不是*)。

SELECT SUM(s.rank) as total_rank, s.id, s.foo, s.bar, SUM(ss.rank) as group_sum FROM standard s...

我建議改變你JOIN了。

... LEFT JOIN substandard ss ON s.id = ss.standard

或類似的東西。

+0

問題是我不知道如何結合兩個SUM在一個查詢中使用不同的GROUP BY! – samra 2012-02-27 21:30:50

1

不知道你在找什麼,但是這可能幫助:

select s.id, s.title, sum(ss.rank) as group_sum from standard s 
join subStandard ss 
on s.id = ss.standard_id 
group by s.id, s.title