ich eine Abfrage, wo ich Daten übernehmen, so dass ich es in OLEDB-Verbindung gespeichert, weil ich, dass Daten mehrmals in eine andere querysVerwendung der gespeicherten Daten in Abfrage SSIS
Abfrage
SELECT * FROM (
SELECT
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 <= '2015-04-30'
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
verwenden möchten
Dann erstelle ich eine andere OLEDB-Verbindung, wo ich eine andere Abfrage, wo ich Daten aus der ersten Abfrage verwenden
zweite Abfrage (relevante Code nur)
LEFT MERGE JOIN
(SELECT TTRIVA.*,TTGJAERIVA.GENERALJOURNALACCOUNTENTRY FROM TAXTRANS TTRIVA
INNER MERGE JOIN TAXTRANSGENERALJOURNALACCOUNTENTRY TTGJAERIVA ON TTGJAERIVA.TAXTRANS = TTRIVA.RECID
INNER MERGE JOIN GENERALJOURNALACCOUNTENTRY GJAERIVA ON TTGJAERIVA.GENERALJOURNALACCOUNTENTRY = GJAERIVA.RECID
AND GJAERIVA.POSTINGTYPE IN(14,236,71) AND TTRIVA.TRANSDATE <[email protected]) TTRIVA ON TT.VOUCHER = TTRIVA.VOUCHER
AND TT.SOURCERECID = TTRIVA.SOURCERECID
AND TT.TAXITEMGROUP = TTRIVA.TAXITEMGROUP
AND (TTRIVA.TAXCODE LIKE 'RIVA%')
AND TTRIVA.GENERALJOURNALACCOUNTENTRY = TTGJAE.GENERALJOURNALACCOUNTENTRY
--JOIN PARA RETENCIONES DE ISR PAGADAS
LEFT MERGE JOIN
(SELECT TTRISR.*,TTGJAERIVA.GENERALJOURNALACCOUNTENTRY FROM TAXTRANS TTRISR
INNER MERGE JOIN TAXTRANSGENERALJOURNALACCOUNTENTRY TTGJAERIVA ON TTGJAERIVA.TAXTRANS = TTRISR.RECID
INNER MERGE JOIN GENERALJOURNALACCOUNTENTRY GJAERIVA ON TTGJAERIVA.GENERALJOURNALACCOUNTENTRY = GJAERIVA.RECID
AND GJAERIVA.POSTINGTYPE IN(14,236,71) AND TTRISR.TRANSDATE <[email protected]) 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
--JOIN PARA IEPSCUOTA
LEFT MERGE JOIN
(SELECT TTIEPSCUOTA.*,TTGJAERIVA.GENERALJOURNALACCOUNTENTRY FROM TAXTRANS TTIEPSCUOTA
INNER MERGE JOIN TAXTRANSGENERALJOURNALACCOUNTENTRY TTGJAERIVA ON TTGJAERIVA.TAXTRANS = TTIEPSCUOTA.RECID
INNER MERGE JOIN GENERALJOURNALACCOUNTENTRY GJAERIVA ON TTGJAERIVA.GENERALJOURNALACCOUNTENTRY = GJAERIVA.RECID
AND GJAERIVA.POSTINGTYPE IN(14,236,71) AND TTIEPSCUOTA.TRANSDATE <[email protected]) TTIEPSCUOTA ON TT.VOUCHER = TTIEPSCUOTA.VOUCHER AND TT.SOURCERECID = TTIEPSCUOTA.SOURCERECID
AND TT.TAXITEMGROUP = TTIEPSCUOTA.TAXITEMGROUP
AND (TTIEPSCUOTA.TAXCODE LIKE 'IEPSCUOTAP')
AND TTIEPSCUOTA.GENERALJOURNALACCOUNTENTRY = TTGJAE.GENERALJOURNALACCOUNTENTRY
Wie Sie ich in jedem LEFT JOIN
verwenden FROM TAXTRANS
sehen können, aber ich habe das TAXTRANS
in ersten Abfrage gespeichert. Wie kann ich diese zweite Abfrage durch erste Abfragedaten ersetzen?
Datenfluß:
Ich mache es, weil zweite Abfrage nicht die einzige ist, die ich habe, sollte ich eine andere Querys wie 10 tun, und alle Abfragen verwendet TAXTRANS info – Ledwing
Wenn alle anderen 10 Abfragen, die Sie ausführen müssen, sich in derselben Datenbank befinden, gilt das, was ich oben aufgeführt habe, immer noch. Modularisieren Sie Ihre Abfragen Schritt für Schritt und lassen Sie sie als Stapel von Anweisungen in der Datenbank ausführen. Die Logik von Joins über Merge in SSIS zu bringen, wird nicht helfen. – VKarthik
Trennen Sie Ihre Abfragen in wiederverwendbare Abschnitte und weisen Sie sie Variablen zu. Erstellen Sie jede Anweisung innerhalb einer Ausdrucksaufgabe, bevor Sie die SQL-Aufgabe ausführen. –