我正在尝试创建一个查询,如果订单中订购的产品多于库存产品但是它有重复,我将无法理解原因。请参见下面的屏幕截图:enter image description here
查询是:
SELECT a.OrderID, a.CustomerID,
(SELECT SUM(Subtotal) from [Order Subtotals] AS f
where a.OrderID = f.OrderID) as Total,
(Select SUM(Quantity) as Quantity from dbo.[Order Details Extended] b
where a.OrderID = b.OrderID) as Quantity,
( SELECT
CASE
WHEN Quantity > d.UnitsInStock or Discontinued = 1
THEN 'error in order'
ELSE ''
END AS varchar) as Messagee
FROM dbo.Orders AS a
Left join [Order Details Extended] as c on a.OrderID = c.OrderID
Left join Products as d on c.ProductID = d.ProductID
答案 0 :(得分:1)
正确的查询是:
SELECT a.OrderID, a.CustomerID, sum(os.subtotal) as Total,
SUM(ode.Quantity) as quantity,
CASE WHEN COUNT(
CASE WHEN Quantity > pro.UnitsInStock OR Discontinued = 1 THEN 1 END
) > 0 THEN 'error in order' ELSE '' END AS Message
from dbo.Orders as a
Left join [Order Details Extended] as ode
on a.OrderID = ode.OrderID
Left join Products as pro
on ode.ProductID = pro.ProductID
left join [Order Subtotals] as os
on a.OrderID = os.OrderID
group by a.OrderID, a.CustomerID