2012-04-26 21 views
1

作爲示例,有一張表中列出了銷售代表及其銷售額。其中兩個rep ID是用於同一個Rep,所以我需要能夠將這兩行合併到一個查詢中,同時仍然顯示其餘的行。無論這是在SQL查詢中完成,還是在PHP中都可以。SQL - 總結兩行數據,同時仍顯示其餘行

因此,這裏的表會是什麼樣子:

ID Sales 
100 $5 
101 $10 
102 $2 
500 $3 

我就需要這樣的輸出:

ID Sales 
100 $8 
101 $10 
102 $2 

其中ID 100的銷售是兩個100和500

的總和

我相信這不會太難,但我不熟悉SQL或PHP,儘管學習。謝謝。

+0

什麼領域可以用來確定100和500是同一個人? (爲什麼他有兩個條目?)你如何確定結果應該有ID 100,而不是500? – sisve 2012-04-26 05:02:23

+0

是否有另一個表格說明哪些Rep ID屬於同一個Rep?或者你每次想要執行這個操作時都要手動引用它們? – Milee 2012-04-26 05:04:20

+0

我將不得不手動引用這兩個ID屬於對方每次我需要這個。我正在使用只讀數據庫。他們有兩個條目的原因是很長的故事,並且由於我們使用的系統設置的方式而無法避免。合併時,我將不得不手動創建ID 100。謝謝。 – BlueCaret 2012-04-26 05:20:44

回答

1

使用兩個單獨的查詢,然後工會

SELECT ID, SUM(Sales) FROM table WHERE ID IN (100,500) 
UNION ALL 
SELECT ID, Sales FROM table WHERE ID NOT IN (100,500) 
+0

這應該做到!知道它不應該那麼辛苦。謝謝! – BlueCaret 2012-04-26 05:14:32

1

嘗試

select id, sum(sales) from your_table 
group by case id 
     when 100 then -1 
     when 500 then -1 
     else id end; 
+0

這將如何工作?不知道-1是什麼。我得到這種情況是一個if else語句,這種方式看起來很有希望,我只想知道在這個查詢中發生了什麼-1部分。謝謝! – BlueCaret 2012-04-26 05:18:19

+0

這實際上在1選擇語句工作。看到這個[例子](http://sqlfiddle.com/#!2/8de1f/2)。它爲id 100和500例外,並添加它們。查詢告訴sql將id 500和id 100視爲相同的id:-1。 – 2012-04-26 05:25:46

+0

明白了,謝謝。現在我只是想弄清楚如何將其與我已經過於複雜的查詢集成... – BlueCaret 2012-04-26 05:45:59