我有以下代码:
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))
一切正常!
答案 0 :(得分:1)
您的查询看起来很好:
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 IN (1 , 6) )
)
FROM Listas_Precios_Detalle LDP INNER JOIN
Productos PR
ON PR.Id_Producto = LDP.Id_Producto
WHERE Id_Lista_Precios = 6
相关子查询没有明显的问题。