RaketenPeter
Mitglied
Hallo Leute ! Ich arbeite hier als Laie an einer recht großen Datenbank! Ich soll dort eine Abfrage machen die mir Daten liefert die ich in ein bestehendes Toll übernehme
Habe ein bestehendes Select das mir die Datenform vorgibt! und ein weiteres von dem ich der Meinung bin das es mir die Überflüssigen Zeilen rauswirft!
Der obere select hat noch etliche doppelte EINSATZZAEHLER Eintraege, von diesen will ich mittels min() immer nur den mit der kleinsten EINTREFFEN_ZEIT. funktionieren tun beide selects aber ich finde nicht herraus wie ich beide verschachteln kann.
Ist es überhaupt möglich in einem select ein subselect mit mehr als einer Zeile zu machen? Oder rmuss ich evtl das eine Ergebnis in eine temporäre Tabelle schreiben und diese dann wiederum mit dem 2ten select abfragen?
Vielen Dank für eure hilfe !
grüße Jens
Habe ein bestehendes Select das mir die Datenform vorgibt! und ein weiteres von dem ich der Meinung bin das es mir die Überflüssigen Zeilen rauswirft!
Code:
-- bestehende abfrage die auch doppelte abfragen zurückliefert! wichtig die ausgabeform hier sollte beibehalten werden!
select a_auftrag.alarm_datum ||';'|| a_auftrag.annahme_disponent ||';'|| a_auftrag.name ||';'|| a_auftrag.ez_ort ||';'|| a_auftrag.stichwort_bezeichnung ||';'|| to_char (a_telefon.call_arriving, 'HH24:MI:SS')||';'|| to_char(a_telefon.call_taken , 'HH24:MI:SS')||';'|| to_char(a_telefon.call_end, 'HH24:MI:SS') ||';'||a_auftrag.ANNAHME_END_ZEIT ||';'|| a_auftrag.ALARM_ZEIT ||';'|| a_auftrag.EINSATZUEBERNAHME_ZEIT ||';'|| a_auftrag.EINTREFFEN_ZEIT ||';'|| einsatzende_zeit
from a_auftrag, a_telefon
where a_auftrag.einsatzzaehler = a_telefon.mission_counter
and a_auftrag.alarm_datum between '01.01.08 00:00:00,000 +01:00' and '29.02.08 23:59:59,999 +01:00'
and ( a_auftrag.typ like '%RTW' or a_auftrag.typ like '%NEF')
and sondersignal = '1' order by alarm_datum ;
-- ergaenzung um bei doppelte spalten (doppeltvergebener einsatzzaehler) die mit der kleinsten eintreffen_zeit zu waehlen
-- diese sollte ggf als subselect aufgerufen werden (falls subselect mit mehr als einer zeile ausgabe moeglich)
select einsatzzaehler, min(TO_DATE(EINTREFFEN_ZEIT, 'HH24:MI:SS')) from a_auftrag
group by einsatzzaehler
order by einsatzzaehler
Der obere select hat noch etliche doppelte EINSATZZAEHLER Eintraege, von diesen will ich mittels min() immer nur den mit der kleinsten EINTREFFEN_ZEIT. funktionieren tun beide selects aber ich finde nicht herraus wie ich beide verschachteln kann.
Ist es überhaupt möglich in einem select ein subselect mit mehr als einer Zeile zu machen? Oder rmuss ich evtl das eine Ergebnis in eine temporäre Tabelle schreiben und diese dann wiederum mit dem 2ten select abfragen?
Vielen Dank für eure hilfe !
grüße Jens