【发布时间】:2015-03-28 19:43:50
【问题描述】:
我有以下代码:
SELECT LDP.Id_Lista_Precios,
LDP.Id_Producto,
PR.STOCK,
(SELECT SUM(Cantidad) FROM Pedidos_Detalle PD
WHERE PD.Id_Producto=LDP.Id_Producto AND PD.Id_Pedido
IN (SELECT Id_Pedido FROM Pedidos WHERE Id_Estado=1 OR Id_Estado=6))
FROM Listas_Precios_Detalle LDP
INNER JOIN Productos PR ON PR.Id_Producto=LDP.Id_Producto
WHERE Id_Lista_Precios=6
请注意这个表情:
(SELECT SUM(Cantidad) FROM Pedidos_Detalle PD
WHERE PD.Id_Producto=LDP.Id_Producto AND PD.Id_Pedido
IN (SELECT Id_Pedido FROM Pedidos WHERE Id_Estado=1 OR Id_Estado=6))
基本上,我希望它返回有关所选价目表的一些数据以及所有“等待”和“准备”订单状态下每种产品的总和,只有它们。
该列只返回NULL,但是...如果您像这样硬核产品ID:
(SELECT SUM(Cantidad) FROM Pedidos_Detalle PD
WHERE PD.Id_Producto=16 AND PD.Id_Pedido
IN (SELECT Id_Pedido FROM Pedidos WHERE Id_Estado=1 OR Id_Estado=6))
效果很好!
【问题讨论】:
-
当我说它有效时,我的意思是它不会返回 NULL,但它会为所选价目表中的所有产品返回相同的值(在本例中为 40),显然是因为它是硬编码的。谢谢!