不容有两个不同的别名为相同的查询
问题描述:
选择我想要做一个选择是这样的:不容有两个不同的别名为相同的查询
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
问题是,我得到一个错误:
Incorrect syntax near 'TTIEPSCUOTA '
而且that's因为在SQL中我们不能在WHERE子句之后使用ALIASES,有人能解释我怎样才能重构此查询以在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
注意:您不应该被指定为JOIN
算法,除非你知道这是必要的。
编辑:
为什么你使用子查询呢?这是更简单地写为:
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“.' – Benny
据推测,这是一个较大查询的一部分。这是不明显的,为什么一个格式良好的查询与此snipper会造成问题。 –
我们得到与第二个查询相同的结果吗?只是删除子查询? – Benny