【发布时间】:2021-05-28 03:46:07
【问题描述】:
这里显示的我的查询在Description 列中返回多行并导致标题中提到的错误。
有什么建议吗?
SELECT
T0.[TransId], T0.[Account], T0.[ShortName], T0.[ContraAct],
CASE
WHEN T0.[TransType] = '18 '
THEN (SELECT Description FROM PCH1
WHERE DocEntry = T0.CreatedBy AND AcctCode = T0.Account)
ELSE T0.[LineMemo]
END AS Description,
T0.[Ref3Line], T0.[TransType], T0.[RefDate],
T0.[CreatedBy], T0.[BaseRef]
FROM
JDT1 T0
WHERE
T0.[Account] = '630000'
【问题讨论】:
-
错误信息再清楚不过了。上述较大查询中的子查询有时会返回多个值,而
CASE表达式只要求标量(单个)值必须遵循THEN和ELSE。请在此处将示例数据添加到您的问题中以获得最佳结果。 -
SELECT Description FROM PCH1 WHERE DocEntry = T0.CreatedBy AND AcctCode = T0.Account返回多个值是根本原因。使用 top(1) 将解决这个问题。希望这对你有帮助 -
错误很明显。你想做什么还不清楚。
标签: sql sql-server