我已经多次查看过此代码,但我无法弄清楚为什么我会这样做
关键字“SR”附近的语法不正确
这是我的SELECT查询:
SELECT OrderDetails.OrderID,OrderDetails.ProductCode,OrderDetails.Vendor_Price,OrderDetails.Quantity
FROM OrderDetails
JOIN
(SELECT OrderDetails.OrderID,
CASE Orders.SalesRep_CustomerID WHEN 1 THEN 'S' WHEN 2 THEN 'K' WHEN 3 THEN 'M' ELSE '' END
FROM Orders
GROUP BY OrderDetails.OrderID)
AS 'SR'
WHERE OrderDetails.ShipDate IS NOT NULL
AND OrderDetails.ShipDate >= DATEADD(Day, Datediff(Day,0, GetDate() -6), 0)
ORDER BY OrderDetails.ProductCode ASC
这很简单我只是看不到计算机所指的语法错误。 感谢。
答案 0 :(得分:4)
将'SR'更改为SR。不需要引号。
[更新]
您还忘记AS SR后的ON语句
JOIN (select query...) as SR on SR.OrderID = OrderDetails.OrderID
我猜它应该是OrderID,如果不将它改为你需要的任何东西。
[更新3]更换整个查询
顺便说一句,我认为你不会通过这个查询获得结果,你需要使用以下内容:SELECT OrderDetails.OrderID
,OrderDetails.ProductCode
,OrderDetails.Vendor_Price
,OrderDetails.Quantity
,CASE Orders.SalesRep_CustomerID WHEN 1 THEN 'S' WHEN 2 THEN 'K' WHEN 3 THEN 'M' ELSE '' END
FROM OrderDetails
JOIN #Also consider using INNER JOIN if needed
Orders on Orders.OrderId = OrderDetails.OrderId
WHERE
OrderDetails.ShipDate IS NOT NULL
AND OrderDetails.ShipDate >= DATEADD(Day, Datediff(Day,0, GetDate() -6), 0)
ORDER BY OrderDetails.ProductCode ASC
答案 1 :(得分:2)
ON
JOIN
声明