一于ISNULL函的奇怪?
CREATE TABLE #T(LOTNO INT,QTY NUMERIC(18, 8))
......
SELECT * FROM T LEFT JOIN (SELECT LOTNO, SUM(QTY) AS QTY
FROM #T
GROUP BY LOTNO) A
ON T.LOT_NO = LOTNO
WHERE T.LOT_QTY-ISNULL(QTY,0)> 0
DROP TABLE #T
-----------------------------
在本行得到一(正),但在客的行得到三().
本和客端的是相同的,奇怪的是在客端WHERE 句
T.LOT_QTY-ISNULL(QTY,0)> 0 不知伸原因不起作用,改成T.LOT_QTY-ISNULL(QTY,0)> 1000 或T.LOT_QTY-ISNULL(QTY,0) <1000...或者是掉都是一的果.
你的意!
[解决办法]
楼主可能碰到的是关于NUll值设置的问题,看下面例子(来自联机帮助)
[解决办法]
WHERE T.LOT_QTY-ISNULL(QTY,0)> 0
--> 改为
WHERE isnull(T.LOT_QTY,0)-ISNULL(QTY,0)> 0
如果还有问题,建议把没有条件的数据追加到临时表中,再检查这些数据是否有问题
SELECT *
into #tt
FROM T
LEFT JOIN (SELECT LOTNO, SUM(QTY) AS QTY
FROM #T
GROUP BY LOTNO) A
ON T.LOT_NO = LOTNO
[解决办法]
你的T表中有LOT_QTYNULL的?
使用句察看下
Select * From T Where LOT_QTY Is Null
[解决办法]
应该是T.lot_qty也有null的情况。