Ich habe eine ORACLE-Ansicht und muss einen Bericht basierend auf dieser Ansicht generieren. Dies ist das Anzeigebeispiel.ORACLE - So erstellen Sie ein temporäres Feld basierend auf bestimmten Daten in einem bestimmten Feld
SELECT DATE, VOUCHER_NO, CURRENCY, AMOUNT, DESCRIPTION, JOURNAL_TYPE, COA_NO
FROM VIEW_EXAMPLE
|DATE |VOUCHER_NO|CURRENCY|AMOUNT|DESCRIPTION|JOURNAL_TYPE|COA_NO|
|03/30/2016|0000000001|USD |2000 |ABCD |CREDIT |150001|
|03/30/2016|0000000001|USD |2000 |ABCD |DEBIT |(NULL)|
|03/30/2016|0000000002|USD |1500 |ABCD |CREDIT |150002|
|03/30/2016|0000000002|USD |1000 |ABCD |DEBIT |530001|
|03/30/2016|0000000002|USD |500 |ABCD |DEBIT |540002|
|03/31/2016|0000000003|USD |4000 |ABCD |CREDIT |150003|
|03/31/2016|0000000003|USD |2000 |ABCD |DEBIT |520002|
|03/31/2016|0000000003|USD |1000 |ABCD |DEBIT |520004|
|03/31/2016|0000000003|USD |500 |ABCD |DEBIT |520005|
|03/31/2016|0000000003|USD |500 |ABCD |DEBIT |520010|
Ich habe die Aufzeichnungen von DATE
und COA_NO
als Parameter, aber wie Sie sehen können, die COA_NO
wo JOURNAL_TYPE
ist DEBIT
unterschiedlich sind. Die COA_NO
, die den Parameter entsprechen, ist in der CREDIT
. Bei den Daten handelt es sich um Kredit- und Debit-Paare, die auf der VOUCHER_NO
basieren, und ein Kredit kann mehr als eine Lastschrift haben.
Zunächst verwende ich diese Abfrage:
SELECT DATE, VOUCHER_NO, CURRENCY, AMOUNT, DESCRIPTION, JOURNAL_TYPE, COA_NO
FROM VIEW_EXAMPLE
WHERE DATE = @date
AND VOUCHER_NO IN (SELECT VOUCHER_NO FROM VIEW_EXAMPLE WHERE COA_NO = @coa_no)
Es funktioniert, wenn ich will nur ein COA_NO
bekommen. Aber, das Problem ist, ich muss auch alle COA_NO
in spezifischen DATE
und verwenden Sie es, um die Daten zu gruppieren (in C#).
Ich versuche auch, zwei Abfragen zu erstellen, zuerst um alle COA_NO
in einem bestimmten Datum zu erhalten, und zweitens die Daten abzufragen, indem Sie es foreach COA_NO
an diesem Datum durchlaufen. Aber es ist sehr langsam, weil es in diesem Datum alle COA_NO
Datenbank abfragen musste.
Also ich denke, ich muss ein temporäres Feld erstellen, das die COA_NO
des Kredits für alle Datensätze enthält, so.
|DATE |VOUCHER_NO|CURRENCY|AMOUNT|DESCRIPTION|JOURNAL_TYPE|COA_NO|TEMP_FIELD|
|03/30/2016|0000000001|USD |2000 |ABCD |CREDIT |150001|150001 |
|03/30/2016|0000000001|USD |2000 |ABCD |DEBIT |(NULL)|150001 |
|03/30/2016|0000000002|USD |1500 |ABCD |CREDIT |150002|150002 |
|03/30/2016|0000000002|USD |1000 |ABCD |DEBIT |530001|150002 |
|03/30/2016|0000000002|USD |500 |ABCD |DEBIT |540002|150002 |
|03/31/2016|0000000003|USD |4000 |ABCD |CREDIT |150003|150003 |
|03/31/2016|0000000003|USD |2000 |ABCD |DEBIT |520002|150003 |
|03/31/2016|0000000003|USD |1000 |ABCD |DEBIT |520004|150003 |
|03/31/2016|0000000003|USD |500 |ABCD |DEBIT |520005|150003 |
|03/31/2016|0000000003|USD |500 |ABCD |DEBIT |520010|150003 |
Wie geht das? Oder ist das eine andere Möglichkeit, diese Daten mit der COA_NO
zu gruppieren?
Und auch ich habe ORDER
diese Daten von AMOUNT
ohne die VOUCHER_NO
Paare zu brechen. (Optional)
Vielen Dank Boneinist, es hat wirklich funktioniert. Ich kann den Bericht jetzt schneller erstellen. – grayfield