我有这个子查询
LEFT MERGE JOIN
(SELECT SOURCERECID,TAXITEMGROUP,TAXCODE,GENERALJOURNALACCOUNTENTRY,VOUCHER,TAXAMOUNT,TAXAMOUNTCUR FROM ##TGJAE) TTRIVA ON TT.VOUCHER = TTRIVA.VOUCHER
AND TT.SOURCERECID = TTRIVA.SOURCERECID
AND TT.TAXITEMGROUP = TTRIVA.TAXITEMGROUP
AND (TTRIVA.TAXCODE LIKE 'RIVA%')
OR (TTRIVA.TAXCODE LIKE 'RISR%')
OR (TTRIVA.TAXCODE LIKE 'IEPSCUOTAP')
OR (TTRIVA.TAXCODE LIKE 'IEPS25AP')
OR (TTRIVA.TAXCODE LIKE 'IEPS8AP')
AND TTRIVA.GENERALJOURNALACCOUNTENTRY = TTGJAE.GENERALJOURNALACCOUNTENTRY
我想知道是否可以为每个OR
子句应用别名,如:
AND (TTRIVA.TAXCODE LIKE 'RIVA%') AS RIVA
OR (TTRIVA.TAXCODE LIKE 'RISR%') AS RISR
OR (TTRIVA.TAXCODE LIKE 'IEPSCUOTAP') AS IEPSCUOTAP
OR (TTRIVA.TAXCODE LIKE 'IEPS25AP') AS IEPS25AP
OR (TTRIVA.TAXCODE LIKE 'IEPS8AP') AS IEPS8AP
有没有办法做到这一点?
答案 0 :(得分:0)
Alias用于为结果提供临时名称,仅在该实例中使用。看起来你可能最好处理一个被操纵的对象。
您能否提供更多有关您希望这样做的信息?
我想这样做是因为在查询的另一部分我调用了TTRIVA.TAXCODE,但是我无法区分我称之为TTRIVA.TAXCODE的那个5
基于此,听起来你只想返回1个特定的数据字段,同时抓住多个数据。这最好用一个对象完成,或者在利用信息的系统中完成(或进行单独的查询)。
您的情况也存在一些问题。我建议尽可能使用括号,以使您想要的结果更清晰。
以下是一个例子:
LEFT MERGE JOIN
(SELECT
SOURCERECID,
TAXITEMGROUP,
TAXCODE,
GENERALJOURNALACCOUNTENTRY,
VOUCHER,TAXAMOUNT,
TAXAMOUNTCUR
FROM ##TGJAE) AS TTRIVA
ON TT.VOUCHER = TTRIVA.VOUCHER
AND TT.SOURCERECID = TTRIVA.SOURCERECID
AND TT.TAXITEMGROUP = TTRIVA.TAXITEMGROUP
AND TTRIVA.GENERALJOURNALACCOUNTENTRY = TTGJAE.GENERALJOURNALACCOUNTENTRY
AND (
TTRIVA.TAXCODE LIKE 'RIVA%'
OR TTRIVA.TAXCODE LIKE 'RISR%'
OR TTRIVA.TAXCODE LIKE 'IEPSCUOTAP'
OR TTRIVA.TAXCODE LIKE 'IEPS25AP'
OR TTRIVA.TAXCODE LIKE 'IEPS8AP'
)
假设您的其余代码是正确的,这应该可行。如果我们查看底部部分,您将获取每个匹配的税码(RIVA%,RISR%,IEPSCUOTAP,IEPS25AP和IEPS8AP)的数据。如果您只想要一个税码,我建议您单独查询,只在需要时运行它们。
希望有所帮助,