SQL Server 2008 R2中执行错误的SQL查询

问题描述

我不是sql开发人员。我正在执行以下查询,这是一条选择语句的子查询

此特定子查询查询失败,并显示以下错误

第512条消息,状态16,状态1,第13行
查询返回的值超过1。当子查询遵循=,!=,,> =或将子查询用作表达式时,不允许这样做。

我不知道为什么会出错。

SELECT
    CASE 
       WHEN LJT.POSTING IN (20,31,41) 
            AND LEFT(LJT.VOUCHER,3) NOT IN ('REC','PAY','GEN','@R_502_6460@','NET','900','BDJ','004') 
          THEN (SELECT TOP (1) dbo.CUSTTRANS.INVOICE 
                FROM dbo.CUSTTRANS WITH (nolock) 
                WHERE CUSTTRANS.VOUCHER = LJT.voucher 
                  AND CUSTTRANS.DATAAREAID = LJT.DATAAREAID 
                  AND CUSTTRANS.TRANSDATE = LJT.TRANSDATE 
                UNION
                SELECT TOP (1) dbo.vendTRANS.VOUCHER 
                FROM dbo.vendTRANS WITH (nolock) 
                WHERE vendTRANS.VOUCHER = LJT.voucher 
                  AND vendTRANS.DATAAREAID = LJT.DATAAREAID 
                  AND vendTRANS.TRANSDATE = LJT.TRANSDATE)
          ELSE LJT.Voucher 
    END AS NumberTransaction5
FROM 
    BEANRsqlDAX.ecu_AX2009_sp1_ru8_prd.dbo.LedgerTRANS LJT WITH (NOLOCK) 

此外,还有许多其他子查询与该子查询完全一样,但是只有这会出错。

有人可以给我一些提示吗?

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)