嗨,我正在尝试选择 movementline.qty
的值,但仅当 movements.movementscode
等于RW时,如果不只是将0.00
SELECT levelfield1.description,
products.reportuom,
products.productcode,
products.description,
Isnull(Sum(ReceivingLine.qty), 0.00) AS [B.Delivery],
movements.movementcode,
Isnull((SELECT qty
FROM MovementLine
WHERE movementcode = 'RW'), 0.00) AS [B. Returned]
FROM Products
LEFT JOIN LevelField1
ON levelfield1.levelfield1code = products.levelfield1code
LEFT JOIN ReceivingLine
ON receivingline.PRODUCTCODE = products.productcode
LEFT JOIN MovementLine
ON movementline.ProductCode = products.productcode
LEFT JOIN Movements
ON movements.MovementID = MovementLine.movementid
GROUP BY levelfield1.Description,
products.reportuom,
products.productcode,
products.description,
movementline.qty,
movements.movementcode
我收到了错误
子查询返回的值超过1 . 当子查询遵循=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做 . 警告:聚合或其他SET操作消除了空值 .
1 回答
你的代码深入思考 . 因为可能存在加入问题而您可能无法获得正确的结果 . 使用前1个问题将解决,但无法获得正确的结果 . 所以这里需要使用CASE . 我希望您的问题可以通过使用波纹管代码来解决 .