Seite 1 von 1

Re: kniffelig: Auswertung nach Datum iVm Personen

Verfasst: Mi, 17.12.2014 15:00
von RobertG
Hallo Thomas,

Code: Alles auswählen

SELECT MONTH( "a"."datum" ) AS "Monat",
 ( SELECT COUNT( "Name" ) FROM "Tabelle" WHERE "Name" = 'Max'  AND MONTH( "datum" ) = MONTH( "a"."datum" )) AS "Max",
 ( SELECT COUNT( "Name" ) FROM "Tabelle" WHERE "Name" = 'Steffi'  AND MONTH( "datum" ) = MONTH( "a"."datum" )) AS "Steffi"
FROM "Tabelle" AS "a" GROUP BY MONTH("a"."datum" ) ORDER BY "a"."Name" DESC
Da sind gleich mehrere Fehler drin gewesen. In der zweiten zeile fehlte das Komma. In der Bedingung wolltest Du den Monat aus dem namensfeld ermitteln. Die Unterabfragen berücksichtigten nicht den Monat.
Dies habe ich mit einer korrelierenden Unterabfrage korrigiert.
Sobald Du aber über ein Jahr hinaus gehst hast Du ein Problem. Deshalb bitte gegebenenfalls das Jahr mit einfügen.

Gruß

Robert

Re: kniffelig: Auswertung nach Datum iVm Personen

Verfasst: Do, 18.12.2014 08:04
von RobertG
Hallo Thomas,
voodoo1974x hat geschrieben: Was mir aber nicht klar ist: was ist in Deiner Abfrage denn "a"?
Die "Tabelle" erhält einen Alias "a", unter dem sie in der Abfrage angesprochen wird. Das ist notwendig, damit in den Unterabfragen jeweils auf die aktuelle Datenzeile Bezug genommen werden kann. Bei der genannten Abfrage wird mit

Code: Alles auswählen

( SELECT COUNT( "Name" ) FROM "Tabelle" WHERE "Name" = 'Max'  AND MONTH( "datum" ) = MONTH( "a"."datum" ))
der Monat der Unterabfrage (MONTH("Datum")) mit dem Monat der aktuellen Datenzeile der äußeren Abfrage verglichen (MONTH("a"."Datum")).

Gruß

Robert

Re: kniffelig: Auswertung nach Datum iVm Personen

Verfasst: Do, 18.12.2014 12:04
von RobertG
Hallo Thomas,

ist mein Fehler: Ich hatte "Name" = "Max" da stehen. In doppelten Anführungszeichen wird ein Feld erwartet, keine Texteingabe. Ich habe das jetzt in diesem Thread komplett geändert.
Mach'

Code: Alles auswählen

... WHERE "Berater Name" = 'Max' AND ...
daraus - mit einfachen Anführungsstrichen.

Gruß

Robert