Hallo Oracle-Freunde,
ich habe ein Problem mit einer Abfrage und bin mittlerweile am Verzweifeln, weil ich so viel Zeit investiert habe und trotzdem auf keinen grünen Zweig gekommen bin!!!
Es geht konkret um die Aufbereitung von Daten, die dann als Grundlage für einen Urlaubsplan verwendet wird. Der Urlaubsplan wurde mit Hilfe des
Reportingtools BIRT erzeugt.
Dabei habe ich folgende Abfrage erstellt:
select
to_date(a.DATUM,'dd.mm.yy')+1 as STARTDATUM,
to_date(a.DATUM,'dd.mm.yy')+2 as ENDDATUM,
m.NAME||', '||m.VORNAME as MITARBEITER,
decode(a.PROJEKTID, 99999, 'genehmigter / genommener Urlaub', 'geplanter Urlaub') as STATUSDIFF,
a.PROJEKTID
from
bdh.arbeitszeiten a,
bdh.vorgang v,
bdh.mitarbeiter m
where a.MITARBEITERID = m.MITARBEITERID
and v.VORGANGID = a.VORGANGID
and ((m.MITARBEITER_ID > 0) or (m.MITARBEITER_ID <> NULL))
and ((a.ARBEITSVORGANG = 'URLAUB' and a.PROJEKTID = 99999) or (substr(v.name,4,14) = 'Urlaubsplanung'))
and m.austrittsdatum >= current_date
and a.DATUM between '21.01.2008' and '31.12.2008'
order by to_date(a.DATUM,'dd.mm.yy')+1 asc
Die Abfrage liefert mir folgendes ergebnis:
STARTDATUM.....|.....ENDDATUM.....|.......MITARBEITER.......|...................STATUS........................|.....PROJEKTID
26.03.2008.............27.03.2008.............Max Mustermann..........genehmigter / genommener Urlaub.......99999
27.03.2008.............28.03.2008.............Max Mustermann..........genehmigter / genommener Urlaub.......99999
28.03.2008.............29.03.2008.............Max Mustermann..........genehmigter / genommener Urlaub.......99999
29.03.2008.............30.03.2008.............Max Mustermann..........genehmigter / genommener Urlaub.......99999
03.05.2008.............04.05.2008.............Max Mustermann..........geplanter Urlaub..................................12
06.05.2008.............07.05.2008.............Max Mustermann..........geplanter Urlaub..................................12
20.05.2008.............21.05.2008.............Max Mustermann..........geplanter Urlaub..................................12
11.03.2008.............12.03.2008.............Silke Seil....................genehmigter / genommener Urlaub.......99999
26.03.2008.............27.03.2008.............Silke Seil....................genehmigter / genommener Urlaub.......99999
28.03.2008.............29.03.2008.............Silke Seil....................genehmigter / genommener Urlaub.......99999
So nun zum Problem:
Wie man erkennen kann, liefert die Abfrage die Urlaubsstatuse der Mitarbeiter (geplanter Urlaub / genehmigter / genommener Urlaub).
Für die korrekte Ausgabe des Urlaubsplans besteht jetzt folgendes Problem.
Der Urlaubsplan zeigt mir nur die Mitarbeiternamen derjenigen Mitarbeiter an, die den Status "genehmigter / genommener Urlaub" und den Status "geplanter Urlaub" besitzen.
Leider gibt es aber auch Mitarbeiter, die im Feld "STATUS" nur den Eintrag "genehmigter / genommener Urlaub" haben (so wie z.B. Silke Seil). Deshalb werden sie im Urlaubsplan ignoriert und nicht angezeigt.
So nun meine Frage:
Ist es irgendwie möglich einen Dummywert zu produzieren, für jeden Mitarbeiter, der im Feld "STATUS" nur den Eintrag "genehmigter / genommener Urlaub" besitzt?
D.h. im Klartext, jeder Mitarbeiter der nur den Eintrag "99999" als "PROJEKTID" hat, bekommt exakt einen Eintrag "geplanter Urlaub" im Feld "STATUS".
Ich hoffe ich konnte mein Problem verständlich rüber bringen!!!
Ich bedanke mich schon recht herzlich für eure Hilfe!!!
Viele Grüße
DFCE
ich habe ein Problem mit einer Abfrage und bin mittlerweile am Verzweifeln, weil ich so viel Zeit investiert habe und trotzdem auf keinen grünen Zweig gekommen bin!!!
Es geht konkret um die Aufbereitung von Daten, die dann als Grundlage für einen Urlaubsplan verwendet wird. Der Urlaubsplan wurde mit Hilfe des
Reportingtools BIRT erzeugt.
Dabei habe ich folgende Abfrage erstellt:
select
to_date(a.DATUM,'dd.mm.yy')+1 as STARTDATUM,
to_date(a.DATUM,'dd.mm.yy')+2 as ENDDATUM,
m.NAME||', '||m.VORNAME as MITARBEITER,
decode(a.PROJEKTID, 99999, 'genehmigter / genommener Urlaub', 'geplanter Urlaub') as STATUSDIFF,
a.PROJEKTID
from
bdh.arbeitszeiten a,
bdh.vorgang v,
bdh.mitarbeiter m
where a.MITARBEITERID = m.MITARBEITERID
and v.VORGANGID = a.VORGANGID
and ((m.MITARBEITER_ID > 0) or (m.MITARBEITER_ID <> NULL))
and ((a.ARBEITSVORGANG = 'URLAUB' and a.PROJEKTID = 99999) or (substr(v.name,4,14) = 'Urlaubsplanung'))
and m.austrittsdatum >= current_date
and a.DATUM between '21.01.2008' and '31.12.2008'
order by to_date(a.DATUM,'dd.mm.yy')+1 asc
Die Abfrage liefert mir folgendes ergebnis:
STARTDATUM.....|.....ENDDATUM.....|.......MITARBEITER.......|...................STATUS........................|.....PROJEKTID
26.03.2008.............27.03.2008.............Max Mustermann..........genehmigter / genommener Urlaub.......99999
27.03.2008.............28.03.2008.............Max Mustermann..........genehmigter / genommener Urlaub.......99999
28.03.2008.............29.03.2008.............Max Mustermann..........genehmigter / genommener Urlaub.......99999
29.03.2008.............30.03.2008.............Max Mustermann..........genehmigter / genommener Urlaub.......99999
03.05.2008.............04.05.2008.............Max Mustermann..........geplanter Urlaub..................................12
06.05.2008.............07.05.2008.............Max Mustermann..........geplanter Urlaub..................................12
20.05.2008.............21.05.2008.............Max Mustermann..........geplanter Urlaub..................................12
11.03.2008.............12.03.2008.............Silke Seil....................genehmigter / genommener Urlaub.......99999
26.03.2008.............27.03.2008.............Silke Seil....................genehmigter / genommener Urlaub.......99999
28.03.2008.............29.03.2008.............Silke Seil....................genehmigter / genommener Urlaub.......99999
So nun zum Problem:
Wie man erkennen kann, liefert die Abfrage die Urlaubsstatuse der Mitarbeiter (geplanter Urlaub / genehmigter / genommener Urlaub).
Für die korrekte Ausgabe des Urlaubsplans besteht jetzt folgendes Problem.
Der Urlaubsplan zeigt mir nur die Mitarbeiternamen derjenigen Mitarbeiter an, die den Status "genehmigter / genommener Urlaub" und den Status "geplanter Urlaub" besitzen.
Leider gibt es aber auch Mitarbeiter, die im Feld "STATUS" nur den Eintrag "genehmigter / genommener Urlaub" haben (so wie z.B. Silke Seil). Deshalb werden sie im Urlaubsplan ignoriert und nicht angezeigt.
So nun meine Frage:
Ist es irgendwie möglich einen Dummywert zu produzieren, für jeden Mitarbeiter, der im Feld "STATUS" nur den Eintrag "genehmigter / genommener Urlaub" besitzt?
D.h. im Klartext, jeder Mitarbeiter der nur den Eintrag "99999" als "PROJEKTID" hat, bekommt exakt einen Eintrag "geplanter Urlaub" im Feld "STATUS".
Ich hoffe ich konnte mein Problem verständlich rüber bringen!!!
Ich bedanke mich schon recht herzlich für eure Hilfe!!!
Viele Grüße
DFCE
Comment