Servus Community,
folgendes SQL-Problem zum Füllen eines OLAP-Cubes.
Ich habe das Problem zum veranschaulichen auf 2 Tabellen minimiert.
Tabelle A Mitarbeiter
PersNummer | Name
11 | A
12 | B
13 | C
14 | D
Tabelle B Urlaub
PersNummer | Datum | Tagegenommen
11 | 01.2016 | 5
12 | 01.2016 | 2
13 | 01.2016 | 0
14 | 01.2016 | 0
11 | 02.2016 | 5
12 | 02.2016 | 0
13 | 02.2016 | 0
14 | 02.2016 | 0
Was soll raus kommen
PersNummer | Datum | Tagegenommen
11 | 01.2016 | 5
12 | 01.2016 | 2
13 | 01.2016 | 0
14 | 01.2016 | 0
11 | 02.2016 | 10 (5+5)
12 | 02.2016 | 2 (2+0)
13 | 02.2016 | 0
14 | 02.2016 | 0
Meine Herangehensweise war es das ganze unter Nutzung von:
ROW_NUMBER() Over (ORDER BY Annr, AbrMon , AbrJahr DESC) AS ROW für Tabelle A und B
[....]
WHERE A.row <= B.row
Dabei werden allerdings alle Daten im ersten Monat verdoppelt ....
ROLLUP erzeugt eine neue Spalte, da das Ergebnis in einen Cube kommen soll ist dies nicht Zielführend.
Evtl. hat ja jemand eine Idee, vielen Dank im Voraus![Wink ;) ;)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
folgendes SQL-Problem zum Füllen eines OLAP-Cubes.
Ich habe das Problem zum veranschaulichen auf 2 Tabellen minimiert.
Tabelle A Mitarbeiter
PersNummer | Name
11 | A
12 | B
13 | C
14 | D
Tabelle B Urlaub
PersNummer | Datum | Tagegenommen
11 | 01.2016 | 5
12 | 01.2016 | 2
13 | 01.2016 | 0
14 | 01.2016 | 0
11 | 02.2016 | 5
12 | 02.2016 | 0
13 | 02.2016 | 0
14 | 02.2016 | 0
Was soll raus kommen
PersNummer | Datum | Tagegenommen
11 | 01.2016 | 5
12 | 01.2016 | 2
13 | 01.2016 | 0
14 | 01.2016 | 0
11 | 02.2016 | 10 (5+5)
12 | 02.2016 | 2 (2+0)
13 | 02.2016 | 0
14 | 02.2016 | 0
Meine Herangehensweise war es das ganze unter Nutzung von:
ROW_NUMBER() Over (ORDER BY Annr, AbrMon , AbrJahr DESC) AS ROW für Tabelle A und B
[....]
WHERE A.row <= B.row
Dabei werden allerdings alle Daten im ersten Monat verdoppelt ....
ROLLUP erzeugt eine neue Spalte, da das Ergebnis in einen Cube kommen soll ist dies nicht Zielführend.
Evtl. hat ja jemand eine Idee, vielen Dank im Voraus