Hallo,
ich tue mich schwer mit einer bestimmten Anforderung.
So wie ich es kenne, müssen in einer Group by-Klausel *alle* Spalten aufgeführt werden, die im Select stehen und nicht aggregiert sind.
Ich will nun nur nach 1 Spalte gruppieren, aber weitere Spalten mit ausgeben.
Das funktioniert:
Code:
Select LTrim(CA.PersNr) as PersNr,
Sum(Case when F3.Tages_Sollzeit <> '' and F3.Flag_Ft <> 2 then (1) else 0 end) as Integer,
Sum(1) as Integer
from Pers_Buchungen_PC as F3, Personalstamm AS CA
LEFT JOIN Werk AS B1 ON CA.StandortNr = B1.StandortNr
LEFT JOIN Abteilung AS B2 ON CA.Abteilung = B2.AbteilungNr
LEFT JOIN Orgaeinheit AS MF ON CA.OrgaEinNr = MF.OrgaEinNr
LEFT JOIN GruppePerson AS MG ON CA.GruppenNr = MG.GruppenNr
LEFT JOIN KST_Stamm AS FQ ON CA.Kostenstelle = FQ.KStelleNr
where CA.Identifikation = F3.RecID_CA and F3.Flag_Kr = 2 and
F3.Datum > cast(Datepart(Year,Current_date())-2 as Char(4)) + '1231' and F3.Datum < cast(Datepart(Year,Current_date()) as Char(4)) + '0101'
group by PersNr
Ich brauche aber sowas:
Code:
Select LTrim(CA.PersNr) as PersNr, CA.Name, CA.Vorname, B1.Bezeichnung, ..... // <-- hier weitere Spalten, die aber nicht in der "Group by-Klausel" stehen dürfen wegen dem richtigen
//Ergebnis der Summierungen (Summen sollen immer pro Person sein)
Sum(Case when F3.Tages_Sollzeit <> '' and F3.Flag_Ft <> 2 then (1) else 0 end) as Integer,
Sum(1) as Integer
from Pers_Buchungen_PC as F3, Personalstamm AS CA
LEFT JOIN Werk AS B1 ON CA.StandortNr = B1.StandortNr
LEFT JOIN Abteilung AS B2 ON CA.Abteilung = B2.AbteilungNr
LEFT JOIN Orgaeinheit AS MF ON CA.OrgaEinNr = MF.OrgaEinNr
LEFT JOIN GruppePerson AS MG ON CA.GruppenNr = MG.GruppenNr
LEFT JOIN KST_Stamm AS FQ ON CA.Kostenstelle = FQ.KStelleNr
where CA.Identifikation = F3.RecID_CA and F3.Flag_Kr = 2 and
F3.Datum > cast(Datepart(Year,Current_date())-2 as Char(4)) + '1231' and F3.Datum < cast(Datepart(Year,Current_date()) as Char(4)) + '0101'
group by PersNr
Ich vermute ich muss die benötigten Spalten die nicht in der Group by-Klausel stehen in einer Unterabfrage ausgeben.
Da weiß ich aber nicht wie ich das hinbekomme. Ich habe schon einiges mit Union versucht, scheitere aber an der Syntax und am Verständnis.
Weiß hier jemand Rat?
Vielen Dank schon mal vorab!