2017-06-20 41 views
1

我會用表開始: ​​ 查詢: enter image description here總和2列,其中的值是相同的

SELECT taw.user_id AS taw_user_id, COALESCE(SUM(tai.bid), 0) AS tai_bid, taw.win AS taw_win 
FROM tb_auction_winners taw JOIN 
    tb_aukciono_istorija tai 
    ON taw.id = tai.aukciono_id 
WHERE tai.user_id = 206 AND taw.user_id = 206 
GROUP BY aukciono_id, taw.user_id; 

我的問題是,我不能讓我的期望的結果(使用檢查元素改變)

它應該總和所有tai_bidtaw_win值,其中taw_user_id是相同的。我已閱讀SQL query to sum the dataHow to take sum of column with same id in SQL?線程,但它沒有幫助。使用GROUP BY aukciono_id, taw_user_id一切都應該沒問題,但它不起作用。我想這是一個很容易解決,但我找不到什麼是錯:(請幫助我

SQL FIDDLE:http://sqlfiddle.com/#!9/6945a/1

+0

選擇'taw.win'在您的GROUP BY查詢的上下文中沒有意義。 –

+0

我應該改變什麼? –

回答

3

如果我猜中了:你只是想通過taw_user_id總結 - 因此多數民衆贊成。在組中唯一的列BY子句

SELECT taw.user_id AS taw_user_id 
     ,SUM(taw.win) AS taw_win 
     ,SUM(tai.bid) AS tai_bid 
    FROM tb_auction_winners taw 
    INNER JOIN 
    (SELECT aukciono_id, user_id, SUM(bid) as bid 
     FROM tb_aukciono_istorija 
     group by aukciono_id, user_id 
    ) tai 
    ON taw.id = tai.aukciono_id 
    AND taw.user_id = tai.user_id 
WHERE taw.user_id = 206 
GROUP BY taw.user_id 
+0

謝謝你的回答:)我已經試過了,我不知道爲什麼,但它不會返回我想要的。 http://imgur.com/fvu7QSz –

+0

你能解釋一下嗎?會更容易幫助 你準確的期望是什麼? 你目前收到什麼? 也許你可以創建一個小SQLFiddle https://stackoverflow.com/questions/38899464/what-is-sqlfiddle-and-why-should-i-care –

+0

是的,當然。請稍等,請:) –

2

檢查該查詢

select taw_user_id,sum(taw_win) as taw_win,sum(tai_bid) as tai_bid from 
    (
    select taw.user_id AS taw_user_id,sum(win) as taw_win ,(select sum(bid) from tb_aukciono_istorija 
    where user_id=taw.user_id and taw.id =aukciono_id) AS tai_bid from tb_auction_winners taw where user_id=206 
    group by taw.id) temp 

enter image description here

http://sqlfiddle.com/#!9/6945a/86

+0

謝謝你的回答,它的工作原理,但我已經檢查了一個:) –