2017-06-20 40 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

谢谢你的回答,它的工作原理,但我已经检查了一个:) –