Sql Can´;t在同一查询中选择两个不同别名
我想做如下选择:Sql Can´;t在同一查询中选择两个不同别名,sql,sql-server,Sql,Sql Server,我想做如下选择: LEFT MERGE JOIN (SELECT * FROM ##TTC AS TT WHERE (TT.TAXCODE LIKE 'IEPSCUOTAP') TTIEPSCUOTA ON C1.TT_VOUCHER = TTIEPSCUOTA.VOUCHER AND C1.TT_TAXITEMGROUP = TTIEPSCUOTA.TAXITEMGROUP AND PRO.TTF_SOURCERECID = TTIEPSCUOTA.SOU
LEFT MERGE JOIN
(SELECT *
FROM ##TTC AS TT
WHERE (TT.TAXCODE LIKE 'IEPSCUOTAP') TTIEPSCUOTA ON
C1.TT_VOUCHER = TTIEPSCUOTA.VOUCHER
AND C1.TT_TAXITEMGROUP = TTIEPSCUOTA.TAXITEMGROUP
AND PRO.TTF_SOURCERECID = TTIEPSCUOTA.SOURCERECID
问题是我遇到了一个错误:
“TTIEPSCUOTA”附近的语法不正确
这是因为在SQL中,我们不能在WHERE子句之后使用别名,有人能告诉我如何重构这个查询以在WHERE子句之后使用
TTIEPSCUOTA
?关于您有不平衡的括号:
LEFT MERGE JOIN
(SELECT *
FROM ##TTC TT
WHERE TT.TAXCODE LIKE 'IEPSCUOTAP'
) TTIEPSCUOTA
ON C1.TT_VOUCHER = TTIEPSCUOTA.VOUCHER AND
C1.TT_TAXITEMGROUP = TTIEPSCUOTA.TAXITEMGROUP AND
PRO.TTF_SOURCERECID = TTIEPSCUOTA.SOURCERECID
注意:除非您知道有必要,否则不应为联接指定算法
编辑:
为什么要使用子查询呢?这更简单地写为:
LEFT MERGE JOIN
##TTC TTIEPSCUOTA
ON C1.TT_VOUCHER = TTIEPSCUOTA.VOUCHER AND
C1.TT_TAXITEMGROUP = TTIEPSCUOTA.TAXITEMGROUP AND
PRO.TTF_SOURCERECID = TTIEPSCUOTA.SOURCERECID AND
TT.TAXCODE LIKE 'IEPSCUOTAP'
我只是在“TTIEPSCUOTA”附近不断遇到同样的问题语法不正确。
大概,这是一个更大的查询的一部分。不清楚为什么使用此snipper的格式良好的查询会产生问题。我们得到与第二个查询相同的结果?只是删除子查询?@Benny。有子查询和没有子查询的版本在功能上是相同的。