Brunswick Geschrieben 21. Juli 2003 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DerMatze Geschrieben 21. Juli 2003 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Brunswick Geschrieben 21. Juli 2003 Autor Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DerMatze Geschrieben 21. Juli 2003 Teilen Geschrieben 21. Juli 2003 Kleine Anmerkung noch: :mod: Gleich dazuschreiben auf was du entwickelst Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Peregrin Geschrieben 21. Juli 2003 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Brunswick Geschrieben 21. Juli 2003 Autor Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.