例如,我有下表:
date | id | num
01-01 | a | 10
01-02 | a | 14
01-02 | b | 2
01-03 | a | 19
01-03 | b | 5
01-04 | a | 13我想用a减去b的num,也就是说,结果是:
01-01 | 10 //10
01-02 | 12 //14-2
01-03 | 14 //19-5
01-04 | 13 //13我尝试了下面的SQL查询,但是如果date上没有b的记录,它将返回\N。
SELECT tba.date, numall-numout
FROM (
SELECT date, num AS numall
FROM tb
WHERE id = "a"
) tba
LEFT JOIN (
SELECT date, num AS numout
FROM tb
WHERE id = "b"
) tbb
ON tba.date = tbb.date发布于 2012-04-13 02:07:58
如果没有匹配的B,左连接将返回null,这意味着您正在执行
numall - NULL这将导致NULL。要解决这个问题,你必须这样做
numall - COALESCE(numout, 0)强制将不存在的'b‘日期设置为0。
发布于 2012-04-13 02:08:56
使用SELECT tba.date, numall-ISNULL(numout,0)
https://stackoverflow.com/questions/10129215
复制相似问题