mysql中按行项目分组
我需要一列的结果在每一行上是不同的 以下是数据的显示方式:mysql中按行项目分组,mysql,Mysql,我需要一列的结果在每一行上是不同的 以下是数据的显示方式: Ticketnumber Legnumber Commission 100 1 50 100 2 50 这就是我需要它出现的方式: Ticketnumber Legnumber Commission 100 1 100 100 2 0 因此,当legnumber=1时,我需要
Ticketnumber Legnumber Commission
100 1 50
100 2 50
这就是我需要它出现的方式:
Ticketnumber Legnumber Commission
100 1 100
100 2 0
因此,当legnumber=1时,我需要佣金按ticketnumber分组,但当legnumber>1时,佣金应为零。我试着写一份案情陈述书,但没有用。关于如何做到这一点有什么建议吗 使用分组依据和内部表格
SELECT TicketNumber, LegNumber,
CASE WHEN LegNumber = 1 THEN
(SELECT SUM(Commission)
FROM MyTable WHERE TicketNumber = MT.TicketNumber
GROUP BY TicketNumber) ELSE 0 END AS Commission
FROM MyTable MT
FIDLE-您可以使用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
试试这个
SELECT TicketNumber, LegNumber,
CASE WHEN LegNumber = 1
THEN (select SUM(Commission) from Table1 group by ticketnumber )
ELSE 0 END AS Commission
FROM Table1 GROUP BY TicketNumber, LegNumber
我将使用此解决方案:
SELECT
t1.Ticketnumber,
t1.Legnumber,
CASE WHEN Legnumber=1 THEN t2.sum_commission ELSE 0 END Commission
FROM
Table1 t1 INNER JOIN (
SELECT Ticketnumber, SUM(Commission) sum_commission
FROM Table1
GROUP BY Ticketnumber
) t2
USING (Ticketnumber)
ORDER BY
t1.Ticketnumber,
t1.Legnumber
请参阅fiddle。您好,请发布您迄今为止尝试过的sql查询!那笔钱不是用票号、LegNumber,而不仅仅是票号吗?你看到小提琴了吗?如果我只是按票号分组,那么我就不会得到第2条的行,我只得到一行票号100。