我需要一列的结果在每一行上都不同。
数据显示方式如下:
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/