我有一张名为'OJDT'的桌子。该表中有一列名为“TransType”。该列中有不同交易类型的代码。在每种交易类型上,还有不同的表。目标是我从'OJDT'获取'TransType',并根据'TransType'转到相应的表格并从该表中获取'DocNum'和'Comments'。 'OJDT'和每个'TransType'可以通过'TransId'加入。一个独特的条件是当'TransType'为30时,然后从'OJDT'获取'DocNum'和'Comments'。为此目的,无需进入外部表来获取这些记录。我在每个trans类型上使用CASE语句并获取记录,但问题是发生错误syaing'subquery返回多个值'。它应该发生,因为我在另一个查询中使用它(这个案例查询作为一个整体)。
select case ojdt.transtype
when 46 then
(select docnum from OVPM --OVPM is the respective column of code 46
inner join OJDT
on ojdt.transID = ovpm.Transid
)
类似地,我已经使用了所有情况,但是发生了错误&这应该。 我该怎么办?
答案 0 :(得分:0)
您的查询应如下
select (case
when ojdt.transtype=46 then
(select docnum from OVPM --OVPM is the respective column of code 46
inner join OJDT
on ojdt.transID = ovpm.Transid
) else '' end) [Trans Type]
答案 1 :(得分:0)
此查询将为您提供符合transid的所有ovpm语句:
select case when transtype = 46 then ovpm.docnum
when transtype = 30 then ojdt.docnum
end as docnum
from ojdt
left outer join
ovpm
on ojdt.transid = ovpm.transid
and ojdt.transtype = 46