![]() |
Datenbank: Access • Version: 2k • Zugriff über: ADO
Frage zum crossqry syntax fehler
Ich habe versucht eine Qry mit einer CrossQry zu kombinieren. Leider funktioniert das irgendwie nicht.
Geht das überhaupt? TRANSFORM First(TContent.sshort) AS FirstOfcontent SELECT TMainTimes.sdate, PEmployee.srotation, TMainTimes.spersonalId, PEmployee.sname, TMainTimes.sshift, PEmployee.sworkcenter, TContent.sshort FROM PEmployee INNER JOIN (TMainTimes INNER JOIN TContent ON TMainTimes.scontent = TContent.scontent) ONPEmployee.spersonalId = TMainTimes.spersonalId WHERE (((TMainTimes.sdate) Between [datStart] And [datEnd]) AND ((PEmployee.srotation)=[ShiftName]) AND ((PEmployee.sworkcenter)=[Wc])) GROUP BY PEmployee.sname, PIVOT DatePart("d",[TMainTimes.sdate,]); Es kommt die Meldung "Syntax Fehler in der Group By Klasuel" Falls sich hier jemand durchfindet... ich freue mich über jeden Hinweis Dirk |
Re: Frage zum crossqry syntax fehler
Bei einer Gruppierung müssen die Felder in der Abfrageliste entweder in der Gruppierung stehen oder als Aggregat vorliegen.
|
Re: Frage zum crossqry syntax fehler
Zitat:
Wie meinst du das genau? Dirk |
Re: Frage zum crossqry syntax fehler
Es werden ja alle Datensätze, die die gleichen Werte der gruppierten Felder zu einem Datensatz verschmolzen werden, existieren dann keine einzelnen Datensätze mehr. Du musst deshalb für die Felder, nach denen nicht gruppiert wird angeben, welche Werte für diese genommen werden sollen ( kleinster, größter, Durchschnitt, Summe, ...); man spricht hier von Aggegatsfunktionen: MIN(), MAX(), AVG(), SUM(), ...
|
Re: Frage zum crossqry syntax fehler
Zitat:
sieht jetzt so aus: TRANSFORM First(TContent.short) AS FirstOfcontent SELECT TMainTimes.personalId, PEmployee.workcenter, [name]+','+[forename] AS EmplName FROM PEmployee INNER JOIN (TMainTimes INNER JOIN TContent ON TMainTimes.content = TContent.content) ON PEmployee.personalId = TMainTimes.personalId WHERE (((DatePart("m",[date],1))=:f_month) AND ((PEmployee.rotation)=:f_rotation) AND ((DatePart("yyyy",[date],1))=:f_year) AND ((PEmployee.workcenter)=:f_wc)) GROUP BY TMainTimes.personalId, PEmployee.workcenter, [name]+','+[forename], PEmployee.rotation ORDER BY PEmployee.workcenter, [name]+','+[forename] PIVOT (DatePart("d",[date],1)) Danke nochmal Dirk |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz