Moin allerseits ;-)
Irgendwie scheint das hier das einzige passende Unterforum zu sein .. falls die Anfrage doch woanders hin gehört, bitte verschieben.
Ich stehe scheinbar ein wenig auf der Leitung. Meine SQL Abfrage funktioniert zwar, aber leider nicht zu 100% so wie sie soll.
Das wäre die Abfrage:
Mein Problem ist hier:
Ich bekomme zwar das richtige Datum für dat_neu, aber die Zuordnung von fbk_tag funktioniert nicht. In der Tabelle kalender sind unsere Arbeitstage hinterlegt. Die Arbeitstage selbst sind als 5 stellige Zahl vorhanden, aber für Wochenenden und Feiertage ist nur eine Null vorhanden. Somit ist bei einer gewissen Anzahl von Datensätzen der Arbeitszähltag falsch zugeordnet.
Wie müsste ich die Abfrage anpassen, damit ich das kleinste Datum von c.dat_neu incl. dem passenden kalender.fbk_tag bekomme, wo der Status von c.rck_mld_art 'I','S','V' oder 'R' ist. Und zwar nicht für jeden Status einen Datensatz, sondern jeweils nur einen einzigen Datensatz. Nämlich den, der das älteste Datum hat und einem dieser Stati entspricht.
Gruß
Jens
Irgendwie scheint das hier das einzige passende Unterforum zu sein .. falls die Anfrage doch woanders hin gehört, bitte verschieben.
Ich stehe scheinbar ein wenig auf der Leitung. Meine SQL Abfrage funktioniert zwar, aber leider nicht zu 100% so wie sie soll.
Das wäre die Abfrage:
Code:
SELECT a.arb_ord_bcd
, substr(a.arb_ord_nr,1,8)
, a.arb_ord_aufl
, a.arb_ord_zae
, substr(a.auf_mz,1,4)
, a.sap_lag_ort
, a.sap_lei_zen
, b.da_org_kap_nr3||b.da_org_kap_nr4
, a.da_ext_prio
, to_char(min(c.dat_neu), 'DD.MM.YY')
, min(lpad(kalender.fbk_tag,5,0) )
, b.rck_mld_art
, to_char(b.mtx_ist_end,' DD.MM.YY')
, lpad(fabrikkalender.fbk_tag,5,0)
, d.text
FROM auaupo a
, aubapo b
, svsv04 c
, buss.dlz_text d
, svsv02 fabrikkalender
, svsv02 kalender
where a.arb_ord_ap = 'P'
and b.kap_nr1 = '63'
and b.da_org_kap_nr3 = '0408'
and b.rck_mld_art = 'F'
and c.rck_mld_art in ('I','S','V','R')
and a.arb_ord_ap = b.arb_ord_ap
and a.arb_ord_bcd = b.arb_ord_bcd
and a.arb_ord_ap = c.arb_ord_ap
and a.arb_ord_bcd = c.arb_ord_bcd
and b.da_org_kap_nr3 = c.kap_ist_nr3
and b.da_org_kap_nr4 = c.kap_ist_nr4
and b.da_org_kap_nr3 = d.kst
and b.da_org_kap_nr4 = d.apl
and fabrikkalender.kal_id = 1
and to_char(b.mtx_ist_end,'YYMMDD')=
to_char(fabrikkalender.fbk_gre_dat,'YYMMDD')
and (fabrikkalender.fbk_gre_dat BETWEEN TO_DATE('&1','DD.MM.YYYY')
AND TO_DATE('&2','DD.MM.YYYY'))
and kalender.kal_id = 1
and to_char(c.dat_neu,'YYMMDD')=
to_char(kalender.fbk_gre_dat,'YYMMDD')
group by
a.arb_ord_bcd
, a.arb_ord_nr
, a.arb_ord_aufl
, a.arb_ord_zae
, a.auf_mz
, a.sap_lag_ort
, a.sap_lei_zen
, b.da_org_kap_nr3||b.da_org_kap_nr4
, b.rck_mld_art
, a.da_ext_prio
, b.mtx_ist_end
, lpad(fabrikkalender.fbk_tag,5,0)
, d.text;
Mein Problem ist hier:
Code:
, to_char(min(c.dat_neu), 'DD.MM.YY')
, min(lpad(kalender.fbk_tag,5,0) )
Ich bekomme zwar das richtige Datum für dat_neu, aber die Zuordnung von fbk_tag funktioniert nicht. In der Tabelle kalender sind unsere Arbeitstage hinterlegt. Die Arbeitstage selbst sind als 5 stellige Zahl vorhanden, aber für Wochenenden und Feiertage ist nur eine Null vorhanden. Somit ist bei einer gewissen Anzahl von Datensätzen der Arbeitszähltag falsch zugeordnet.
Wie müsste ich die Abfrage anpassen, damit ich das kleinste Datum von c.dat_neu incl. dem passenden kalender.fbk_tag bekomme, wo der Status von c.rck_mld_art 'I','S','V' oder 'R' ist. Und zwar nicht für jeden Status einen Datensatz, sondern jeweils nur einen einzigen Datensatz. Nämlich den, der das älteste Datum hat und einem dieser Stati entspricht.
Gruß
Jens