我有这个查询
SELECT * FROM (
SELECT
TT.TAXAMOUNTCUR,
TT.TAXORIGIN,
TT.VOUCHER,
TT.TAXITEMGROUP,
TT.TAXCODE,
TT.SOURCEBASEAMOUNTCUR,
TT.SOURCETAXAMOUNTCUR,
TTGJAERIVA.TAXTRANSRELATIONSHIP,
TTGJAERIVA.GENERALJOURNALACCOUNTENTRY,
TTGJAERIVA.LEDGERDIMENSION,
GJAERIVA.TEXT,
GJAERIVA.LEDGERDIMENSION AS LEDGERDIMENSIONGAE,
GJAERIVA.POSTINGTYPE
FROM TAXTRANS TT
INNER MERGE JOIN TAXTRANSGENERALJOURNALACCOUNTENTRY TTGJAERIVA ON TTGJAERIVA.TAXTRANS = TT.RECID
INNER MERGE JOIN GENERALJOURNALACCOUNTENTRY GJAERIVA ON TTGJAERIVA.GENERALJOURNALACCOUNTENTRY = GJAERIVA.RECID
AND GJAERIVA.POSTINGTYPE IN( 14,236,71,41)
AND TT.TRANSDATE <= '"+ @[User::fecha] +"'
WHERE
(TT.TAXORIGIN <> 11 AND TT.TRANSDATE BETWEEN '"+ @[User::fecha_ini] +"' AND '"+ @[User::fecha] +"') OR (TT.TAXORIGIN = 11 AND TT.TRANSDATE BETWEEN '"+ @[User::fecha_ini] +"' AND '"+@[User::fecha] +"' )) AS T
它完美无缺
但是现在结束之后我想设置一个左边的合并连接TT
谁是我的桌子,所以我的查询是这样的:
SELECT * FROM (
SELECT
TT.TAXAMOUNTCUR,
TT.TAXORIGIN,
TT.VOUCHER,
TT.TAXITEMGROUP,
TT.TAXCODE,
TT.SOURCEBASEAMOUNTCUR,
TT.SOURCETAXAMOUNTCUR,
TTGJAERIVA.TAXTRANSRELATIONSHIP,
TTGJAERIVA.GENERALJOURNALACCOUNTENTRY,
TTGJAERIVA.LEDGERDIMENSION,
GJAERIVA.TEXT,
GJAERIVA.LEDGERDIMENSION AS LEDGERDIMENSIONGAE,
GJAERIVA.POSTINGTYPE
FROM TAXTRANS TT
INNER MERGE JOIN TAXTRANSGENERALJOURNALACCOUNTENTRY TTGJAERIVA ON TTGJAERIVA.TAXTRANS = TT.RECID
INNER MERGE JOIN GENERALJOURNALACCOUNTENTRY GJAERIVA ON TTGJAERIVA.GENERALJOURNALACCOUNTENTRY = GJAERIVA.RECID
AND GJAERIVA.POSTINGTYPE IN( 14,236,71,41)
AND TT.TRANSDATE <= '"+ @[User::fecha] +"'
WHERE
(TT.TAXORIGIN <> 11 AND TT.TRANSDATE BETWEEN '"+ @[User::fecha_ini] +"' AND '"+ @[User::fecha] +"') OR (TT.TAXORIGIN = 11 AND TT.TRANSDATE BETWEEN '"+ @[User::fecha_ini] +"' AND '"+@[User::fecha] +"' )) AS T
--JOIN
LEFT MERGE JOIN
(SELECT VOUCHER,SOURCERECID,TAXITEMGROUP,TAXCODE,GENERALJOURNALACCOUNTENTRY,TAXAMOUNT,TAXAMOUNTCUR FROM TT) TTRISR ON TT.VOUCHER = TTRISR.VOUCHER AND TT.SOURCERECID = TTRISR.SOURCERECID
AND TT.TAXITEMGROUP = TTRISR.TAXITEMGROUP
AND (TTRISR.TAXCODE LIKE 'RISR%')
AND TTRISR.GENERALJOURNALACCOUNTENTRY = TTGJAE.GENERALJOURNALACCOUNTENTRY
但是我遇到了一个问题:
无效的对象名称TT。
答案 0 :(得分:1)
第一个派生表(子查询)被赋予别名T,所以在连接第二个派生表时使用T而不是TT
SELECT
*
FROM (
SELECT
TT.TAXAMOUNTCUR , TT.TAXORIGIN , TT.VOUCHER , TT.TAXITEMGROUP
, TT.TAXCODE , TT.SOURCEBASEAMOUNTCUR , TT.SOURCETAXAMOUNTCUR
, TTGJAERIVA.TAXTRANSRELATIONSHIP
, TTGJAERIVA.GENERALJOURNALACCOUNTENTRY
, TTGJAERIVA.LEDGERDIMENSION
, GJAERIVA.TEXT
, GJAERIVA.LEDGERDIMENSION AS LEDGERDIMENSIONGAE
, GJAERIVA.POSTINGTYPE
FROM TAXTRANS TT
INNER MERGE JOIN TAXTRANSGENERALJOURNALACCOUNTENTRY TTGJAERIVA ON TTGJAERIVA.TAXTRANS = TT.RECID
INNER MERGE JOIN GENERALJOURNALACCOUNTENTRY GJAERIVA ON TTGJAERIVA.GENERALJOURNALACCOUNTENTRY = GJAERIVA.RECID
AND GJAERIVA.POSTINGTYPE IN (14, 236, 71, 41)
AND TT.TRANSDATE <= '"+ @[User::fecha] +"'
WHERE (TT.TAXORIGIN <> 11
AND TT.TRANSDATE BETWEEN '"+ @[User::fecha_ini] +"' AND '"+ @[User::fecha] +"')
OR (TT.TAXORIGIN = 11
AND TT.TRANSDATE BETWEEN '"+ @[User::fecha_ini] +"' AND '"+@[User::fecha] +"')
) AS T
LEFT MERGE JOIN (
SELECT
VOUCHER , SOURCERECID , TAXITEMGROUP , TAXCODE
, GENERALJOURNALACCOUNTENTRY , TAXAMOUNT , TAXAMOUNTCUR
FROM TT
) TTRISR ON T.VOUCHER = TTRISR.VOUCHER
AND T.SOURCERECID = TTRISR.SOURCERECID
AND T.TAXITEMGROUP = TTRISR.TAXITEMGROUP
AND (TTRISR.TAXCODE LIKE 'RISR%')
AND TTRISR.GENERALJOURNALACCOUNTENTRY = TTGJAE.GENERALJOURNALACCOUNTENTRY