0
내가 가진이 쿼리 나 오류 얻을잘못된 쿼리
SELECT *
FROM
(SELECT
TT.RECID, TT.TRANSDATE,
TT.DATAAREAID, TT.SOURCERECID,
TT.SOURCECURRENCYCODE, TT.TAXAMOUNT,
TT.TAXBASEAMOUNT, TT.TAXBASEAMOUNTCUR,
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)
WHERE
(TT.TAXORIGIN <> 11
AND TT.TRANSDATE BETWEEN '2015-01-01' AND '2015-04-30')
OR
(TT.TAXORIGIN = 11
AND TT.TRANSDATE BETWEEN '2015-01-01' AND '2015-04-30')) AS T
---- --JOIN
LEFT MERGE JOIN
(SELECT
SOURCERECID, TAXITEMGROUP, TAXCODE,
GENERALJOURNALACCOUNTENTRY, VOUCHER, TAXAMOUNT,
TAXAMOUNTCUR
FROM
T) TTRIVA ON T.VOUCHER = TTRIVA.VOUCHER
AND T.SOURCERECID = TTRIVA.SOURCERECID
AND TT.TAXITEMGROUP = TTRIVA.TAXITEMGROUP
AND (TTRIVA.TAXCODE LIKE 'RIVA%')
AND TTRIVA.GENERALJOURNALACCOUNTENTRY = TTGJAE.GENERALJOURNALACCOUNTENTRY
: 하위 쿼리에
Invalid object name 'T'.
, 직후 왼쪽 병합 (쿼리의 마지막에) 가입을
---- --JOIN
LEFT MERGE JOIN
(SELECT
SOURCERECID, TAXITEMGROUP, TAXCODE,
GENERALJOURNALACCOUNTENTRY, VOUCHER,
TAXAMOUNT, TAXAMOUNTCUR
FROM
T) TTRIVA ON T.VOUCHER = TTRIVA.VOUCHER
AND T.SOURCERECID = TTRIVA.SOURCERECID
AND TT.TAXITEMGROUP = TTRIVA.TAXITEMGROUP
AND (TTRIVA.TAXCODE LIKE 'RIVA%')
AND TTRIVA.GENERALJOURNALACCOUNTENTRY = TTGJAE.GENERALJOURNALACCOUNTENTRY
가입 전에 쿼리 결과로 'T'를 사용하면 왜 발생하는지 알 수 없습니까? 감사합니다
SQL을 분할 할 수 있습니다. 이것은 앞으로 유지 보수의 악몽이 될 것입니다. – dhiman
나를 믿어 라, 그 악몽은 이제 @DhimanBhattacharya – Ledwing
사이드 노트 : 특히 SQL 서버에 대해서는 [BETWEEN'을 사용하지 마십시오.] (http://sqlblog.com/blogs/aaron_bertrand/archive/2011/10/19/) 공통점은 무엇입니까?). 나는 'transdate'가 완전한 타임 스탬프가 아닌 날짜라는 것을 완전히 확신하지는 않습니다. –