Brunswick Geschrieben 21. Juli 2003 Geschrieben 21. Juli 2003 Ich habe eine Tabelle mit drei relevanten Spalten: Jobname (es existieren zwei Arten von Jobs), Beginnzeitpunkt und Ende des Jobs Nun habe ich alle Jobs A die gesucht waren, per Cursor verarbeitet. Allerdings soll nun noch eine zusätzliche Einschränkung dazu, nämlich sollen nur die Jobs A im Select rausgesucht werden, vor deren Startzeitpunkt am selben Tag bereits Job B gelaufen ist. Allerdings weiß ich nicht wie ich diese Eisnchränkung formulieren soll bzw es scheint nur per native static SQL zu gehen und da sagt er mir daß mein Statement nicht korrekt beendet wurde. mein befehl ist (deklariert ist alles korrekt): sql_text := 'select count(*) from LD_JOB_LAUF where jobname = ''YDW#_zerlegung%'' escape ''#'' AND to_date(beginn_ts,''DD:MM:RRRR'') = substr(' || rec_c1.beg_ts || '1,10)'; open c2 for sql_text; Zitieren
DerMatze Geschrieben 21. Juli 2003 Geschrieben 21. Juli 2003 Wenn ich das richtig sehe arbeitest du mit Oracle PL/SQL ab Version 8i, oder ?? Wenn ich auch das richtig sehe hast du eine Tabelle mit 3 Spalten Name | Start | Stop A | 12.07. |12.07. A | 13.07. ... B | 12.07. Du willst jetzt alle "A"s finden, an deren Stop-Datum auch ein Job B gelaufen ist ?? count (*) from tabelle where name = 'A' and stop IN (select stop from tabelle where name = 'B'); Funzt nur, wenn meine Annahme mit Oracle richtig ist. Das Sub-Select liefert alle stop-daten von den "B"s Hoffe das hilft ... Zitieren
Brunswick Geschrieben 21. Juli 2003 Autor Geschrieben 21. Juli 2003 Werds gleich mal probieren, danke. Muß das ganze noch splitten, da neben dem Datum auch die Uhrzeit drinsteht, und ich prüfen muß ob das gleiche Datum aber frühere Uhrzeit Zitieren
DerMatze Geschrieben 21. Juli 2003 Geschrieben 21. Juli 2003 Kleine Anmerkung noch: :mod: Gleich dazuschreiben auf was du entwickelst Zitieren
Peregrin Geschrieben 21. Juli 2003 Geschrieben 21. Juli 2003 hi, hoffe, ich hab das richtig verstanden... select count(*) from tabelle t1 where t1.name = 'A' and exists ( select 1 from tabelle t2 where t2.name = 'B' and t2.stop < t1.start and to_char(t2.start, 'DD.MM.YYYY') = to_char(t1.start, 'DD.MM.YYYY') ) sollte die anzahl der einträge mit namen 'A' aus tabelle liefern, zu denen es einen eintrag in tabelle mit namen 'B' gibt, welcher am gleichen tag gestartet wurde aber vor dem 'A' geendet ist. hth... Zitieren
Brunswick Geschrieben 21. Juli 2003 Autor Geschrieben 21. Juli 2003 Danke für eure Hilfe, so wie peregrin vorgeschlagen hat, siehts nun auch bei mir aus. Kurz bevor ich dein Posting gelesen hab, ists gegangen, anchdem ich endlich über die exists-Funktion gestolpert bin. Und werde ab jetzt gleich dazuschreiben, worauf ich arbeite. Aber hattest Recht, ist ein Oracle 8.1.7 wenn ich mich nicht täusche. Wünsche euch noch nen schönen tag und viel Spaß beim Entwickeln Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.