Nabend,
stehe gerade vor einem (für mich) massiven Problem auf einem MS SQL Server
Ich lese eine riesige Datenbank von Druckjobs aus um diese verschiedenen Geräten, Abteilungen, usw. zuzuordnen. Das Grundgerüst steht, jedoch bekomme ich es nicht hin alle Daten in einer einzigen Query abzufragen.
Ziel ist eine Ergebnistabelle pro Gerät nach dem Muster:
Vereinfacht kann man sich die Daten so vorstellen (sind eigentlich 7 verknüpfte Tabellen):
Lösungswege habe ich bereits mehrere probiert, hier mal ein paar davon:
1.: Farben per CASE vereinheitlichen:
Problem: Am Ende erhalte ich trotzdem mehrere Zeilen pro Abteilung, wenn in der Spalte Farbe z.B. bei einem Job 2 und bei einem anderen 3 stand...
2.: Per Subquery:
Problem: Will er garnicht ausführen... The multi-part identifier "Abt.ID" could not be bound. (selbiges auch für Abtl.ID und A.ID)
Habe natürlich schon Syntax verändert, andere Wege probiert, gegooglet - mittlerweile weiß ich jedoch nicht mehr weiter und hoffe dass ihr mir hier schneller ans Ziel helfen könnt
Freue mich schon auf Antworten
Gruß
stehe gerade vor einem (für mich) massiven Problem auf einem MS SQL Server

Ich lese eine riesige Datenbank von Druckjobs aus um diese verschiedenen Geräten, Abteilungen, usw. zuzuordnen. Das Grundgerüst steht, jedoch bekomme ich es nicht hin alle Daten in einer einzigen Query abzufragen.
Ziel ist eine Ergebnistabelle pro Gerät nach dem Muster:
Code:
Ergebnistabelle für Gerät xyz:
- Abteilung
- SWseiten
- Farbseiten
- Gesamtseiten
Vereinfacht kann man sich die Daten so vorstellen (sind eigentlich 7 verknüpfte Tabellen):
Code:
Tabelle Jobs:
- ID (Primary)
- Abteilung (Die ID einer Abteilung)
- Farbe (1=SW, 2-4=Farbe)
- Seitenzahl (Anzahl gedruckter Seiten)
- Geraet (Die ID des Druckers)
Lösungswege habe ich bereits mehrere probiert, hier mal ein paar davon:
1.: Farben per CASE vereinheitlichen:
Code:
SELECT [Jobs].Abteilung
,(CASE [Farbe] WHEN 1 THEN 'SW' ELSE 'Farbe' END) as Color
,sum ([Anzahl]) as Anzahl
FROM [test].[dbo].[Jobs]
WHERE [Jobs].Geraet=xyz
GROUP By [Jobs].Abteilung, Farbe
2.: Per Subquery:
Code:
SELECT [Jobs].Abteilung as Abtl
,(SELECT sum(Job.Anzahl) FROM [test].[dbo].Jobs as Job WHERE Farbe=1 AND Abt.ID=Abtl.ID) as Anzahl_SW
,(SELECT sum(J.Anzahl) FROM [test].[dbo].Jobs as J WHERE Farbe>1 AND Farbe<5 AND A.ID=Abtl.ID) as Anzahl_Farbe
FROM [test].[dbo].[Jobs]
GROUP BY [Jobs].Abteilung
Habe natürlich schon Syntax verändert, andere Wege probiert, gegooglet - mittlerweile weiß ich jedoch nicht mehr weiter und hoffe dass ihr mir hier schneller ans Ziel helfen könnt
Freue mich schon auf Antworten

Gruß