Hallo,
ich habe heute auf Krampf versucht eine SQL Abfrage zu basteln die folgendes leistet: Abfragen der Tabelle D2, ausgewählt werden sollen DS,
zu jeder DOK_NUMMER jede BLATT_NUMMER mit dem höchsten IDX falls nun AKTUELL_FLAG auf n steht muss der DS ausgegeben werden. Zu jeder DOK_NUMMER gibt ess bliebig viele Einträge mit beliebig vielen Blätterun mit beliebig vielen IDX
DOK_NUMMER BLATT_NUMMER IDX AKTUELL_FLAG
459-03059-B01 A0 A n
459-03059-B01 A0 B Y
459-03059-B01 D1 A n
459-03059-B01 D1 B n
459-03059-B01 D1 C n
459-03059-B01 D1 D y
459-03059-B01 B0 A y
459-03059-B01 B0 B n
In diesem Datenbeispiel sollte also die letzte Zeile durch die Abfrage erfasst werden:
459-03059-B01 B1 B n
Geprüft werden ob AKTUELL_FLAG auf n steht müssten die DS:
459-03059-B01 A0 B Y
459-03059-B01 D1 D y
459-03059-B01 B0 B n
Also DOK_NUMMER 459-03059-B01 Blatt Nr A0, höchster IDX ist B nun nach AKTUELL_FLAG schauen ...
Bisher habe ich es nur geschafft mir zu einer DOK_NUMMER die höchste BLATT_NUMMER ausgeben zu lassen. Ok, das brauche ich nicht wirklich. Eigentlich brauche ich ja zu jeder BLATTNUMMER den höchsten IDX
Ja und dann verliesen sie Ihn bzw. mich. Hat evtl. jemand den Durchblick und kann mir diesbezüglich einen Tipp geben?
Danke im Voraus
ich habe heute auf Krampf versucht eine SQL Abfrage zu basteln die folgendes leistet: Abfragen der Tabelle D2, ausgewählt werden sollen DS,
zu jeder DOK_NUMMER jede BLATT_NUMMER mit dem höchsten IDX falls nun AKTUELL_FLAG auf n steht muss der DS ausgegeben werden. Zu jeder DOK_NUMMER gibt ess bliebig viele Einträge mit beliebig vielen Blätterun mit beliebig vielen IDX
DOK_NUMMER BLATT_NUMMER IDX AKTUELL_FLAG
459-03059-B01 A0 A n
459-03059-B01 A0 B Y
459-03059-B01 D1 A n
459-03059-B01 D1 B n
459-03059-B01 D1 C n
459-03059-B01 D1 D y
459-03059-B01 B0 A y
459-03059-B01 B0 B n
In diesem Datenbeispiel sollte also die letzte Zeile durch die Abfrage erfasst werden:
459-03059-B01 B1 B n
Geprüft werden ob AKTUELL_FLAG auf n steht müssten die DS:
459-03059-B01 A0 B Y
459-03059-B01 D1 D y
459-03059-B01 B0 B n
Also DOK_NUMMER 459-03059-B01 Blatt Nr A0, höchster IDX ist B nun nach AKTUELL_FLAG schauen ...
Bisher habe ich es nur geschafft mir zu einer DOK_NUMMER die höchste BLATT_NUMMER ausgeben zu lassen. Ok, das brauche ich nicht wirklich. Eigentlich brauche ich ja zu jeder BLATTNUMMER den höchsten IDX
Code:
SELECT /* Zeichnungsnummer */ D1.DOCUMENT_ID AS DOK_NUMMER, /* Blattnummer */ D1.SHEET_NO AS BLATT_NUMMER, /* Index */ D1.DOC_VERSION AS IDX, /* Fortschrittskenner */ D1.LEV_IND AS FK, /* Aktualitäts-Flag */ D1.CUR_FLAG AS AKTUELL_FLAG FROM T_DOC_DAT D1 WHERE EXISTS ( SELECT max(D1.SHEET_NO) FROM T_DOC_DAT D2 WHERE D2.DOCUMENT_ID=D1.DOCUMENT_ID) AND rownum < 10;
Danke im Voraus
Comment