我认为最好向您展示他首先进行查询:
SELECT
Positive.Amount AS PosAmount,
Negative.Amount AS NegAmount,
booking.Correction
FROM (booking)
LEFT JOIN ( SELECT ID, Amount FROM booking WHERE Amount < 0 )
AS Negative ON booking.ID = Negative.ID
LEFT JOIN ( SELECT ID, Amount FROM booking WHERE Amount > 0 )
AS Positive ON booking.ID = Positive.ID
我在这里想要实现的是以下内容。我希望每次预订的金额取决于在不同列中是正数还是负数。还有可能以另一种便宜得多的方式吗?我的意思是,将表自身连接不是最佳方法,不是吗?
该表如下所示:
期望的结果是这样的:
提前致谢!
您只需要在CASE
此处使用一条语句。无需子查询和自联接:
SELECT
CASE WHEN amount > 0 THEN amount END as posAmount,
CASE WHEN amount < 0 THEN amount END as negAmount,
correction
FROM booking
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句