我需要一列的结果在每一行上都不同。

数据显示方式如下:

Ticketnumber  Legnumber  Commission
100           1          50
100           2          50


这就是我需要它出现的方式:

Ticketnumber  Legnumber  Commission
100           1          100
100           2          0


因此,当支路编号= 1时,我需要按票号对佣金进行分组,但是当支路编号> 1时,佣金应为零。我试图写一个案例声明无济于事。关于如何做到这一点的任何建议?

最佳答案

您可以使用Group By属性

SELECT Table1.TicketNumber, LegNumber
, CASE WHEN LegNumber = 1 THEN SUM(Table2.Commission) ELSE 0 END AS Commission
FROM Table1 JOIN (SELECT TicketNumber, sum(commission) as commission
                  FROM table1
                  GROUP BY TicketNumber) table2
ON TABLE1.TICKETNUMBER = table2.ticketnumber
GROUP BY Table1.TicketNumber, LegNumber
ORDER BY Table1.TicketNumber, LegNumber


SQL Fiddle

关于mysql - 在mysql中按订单项分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15370182/

10-10 07:12