Sub-Query返回了多个值

时间:2014-06-25 19:33:25

标签: sql max

我继承了这个多年来运行良好的SQL 7代码。但是在另一个国家/地区,他们会收到此错误:"子查询返回了多个值"。

SELECT
lc.LoadNum,
lc.ShipFromState,
lc.ShipToNum,
(SELECT ShippedStatus = CASE MAX(lc.Status) 
WHEN 'Shipped' THEN 'LOADED'
WHEN 'Picked' THEN 'PICK UP' 
WHEN 'Cancel' THEN 'PICK UP'
WHEN 'WtLoad' THEN 'PICK UP'
WHEN 'Released' THEN 'PICK UP'
WHEN 'Schedule' THEN 'PICK UP' 
WHEN 'Loaded' THEN 'PICK UP'
WHEN 'WtPick' THEN 'PICK UP'
WHEN 'Picking' THEN 'PICK UP'
END) AS ShippedStatus, 
tp.Description AS PlantDescription,
tp.Address,
tp.City,
tp.State, 
tp.ZipCode,
sv.Description AS ShipViaDescription
FROM
vwLoadContents lc (nolock) 
JOIN tblShipVia sv (nolock) ON lc.ShipVia = sv.Code
JOIN tblShipToCust sc (nolock) ON lc.ShipToNum = sc.ShipToNum
JOIN tblPlant tp (nolock) ON lc.ShipFromState = tp.Code
GROUP BY
lc.LoadNum,
lc.ShipFromState,
lc.ShipToNum, 
tp.Description,
tp.Address,
tp.City,
tp.State,
tp.ZipCode, 
sv.Description

MAX(lc.Status)函数如何返回多于一个值? 如果我将整个" SELECT ShippedStatus = Case Max(lc.Status ...)删除为ShippedStatus"子查询然后错误就消失了!

我用这行SQL代码替换了Sub-Query ......

MAX(案例lc.Status当'发货'然后'加载'否则' PICK UP' End)作为ShippedStatus

新的SQL代码行"似乎"即使MAX()函数现在在CASE"之外,也可以在所有位置(所有数据库)工作而不是"在CASE"。

那么,原始SQL脚本如何允许MAX()函数返回多个值?

谢谢!

0 个答案:

没有答案
相关问题