2017-10-02 11 views
0

ich diese SQL-AbfrageVerwendung WHERE-Filter in Dynamik AOT Abfrage

SELECT 
TT.RECID, 
TT.TRANSDATE, 
TT.DATAAREAID, 
TT.SOURCERECID, 
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 '2016-06-30' AND '2017-06-30') OR (TT.TAXORIGIN = 11 AND TT.TRANSDATE BETWEEN '2017-06-01' AND '2017-06-30') 

Alle meine Abfrage ist direkt mit Ausnahme WHERE Klausel haben, wie kann ich mich bewerben where-Klausel mit Query AOT?

In diesem article gelten sie Where-Klausel, aber sie erklären nicht, wie sie es tun.

Aktuelle Abfrage

enter image description here

Hinweis: Wenn etwas mit meiner Frage falsch lass es mich wissen, was es ist. Grüße

+1

Der Artikel, den Sie verlinkt haben, erklärt es ein wenig (beginnend mit dem Absatz, der mit "Wie kann das gemacht werden?"), Aber versäumt zu erwähnen, dass diese Technik allgemein als "Abfrageausdrücke" bezeichnet wird. Sie sind [hier] dokumentiert (https://msdn.microsoft.com/de-de/library/aa893981.aspx), aber ich bevorzuge den [Axaptapedia Artikel] (http://www.axaptapedia.com/Expressions_in_query_ranges). –

+0

Die Informationen aus dem verknüpften Axaptapedia-Artikel helfen Ihnen, wenn Sie die Abfrage in X ++ erstellen. Sie können das verwenden, wenn Sie den Bereich an Ihr AOT-Abfrageobjekt anhängen, nachdem Sie ihn im selben Code deklariert haben, in dem Sie ihn verwenden möchten. Wenn Sie alles im AOT ausführen müssen, müssen Sie die Struktur Ihrer Abfrage ändern, um zwei Puffer der TaxTrans-Tabelle zu verbinden, um die OR-Klausel zu erfüllen. – SShaheen

Antwort

1

Sie müssen einen neuen Bereich zur Datenquelle TaxTrans_1 hinzufügen - Sie können Feld RecId verwenden, ist es egal. Dann können Sie den folgenden Wert in diesem Bereich verwenden:

((TaxOrigin != 11) && (TransDate >= 30\06\2016) && (TransDate <= 30\06\2017)) || ((TaxOrigin == 11) && (TransDate >= 02\06\2017) && (TransDate <= 30\06\2017)) 

Siehe Axaptapedia für weitere Informationen und Beispiele.