Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: superhit am April 24, 2018, 15:02:53

Titel: Datensätze auswählen, bei denen COUNT eine Bedingung erfüllt
Beitrag von: superhit am April 24, 2018, 15:02:53
Hallo zusammen,

ich habe eine Tabelle, in denen zu den vorhandenen Aufträgen die Historie der Aufträge abgebildet ist, d.h. zu jedem Auftrag (erkennbar an "Auftragsnummer") existieren in dieser Tabelle n Einträge in einer Spalte "Auftragsinfos". U.a. enthält Auftragsinfos zu jedem Auftrag mindestens 1x einen Eintrag "Zuordnung: ...".
Ich möchte nun die Aufträge zählen, bei denen in "Auftragsinfos" der String "Zuordnung" mehr als 1x vorkommt. Wie lässt sich das mit Hilfe von SQL bewerkstelligen?

Grüße, Rainer
Titel: Re: Datensätze auswählen, bei denen COUNT eine Bedingung erfüllt
Beitrag von: ebs17 am April 24, 2018, 16:40:40
Daten auswählen mit dem SELECT-Befehl (https://www.sql-und-xml.de/sql-tutorial/select-grundbegriff-zur-auswahl-von-daten.html)
Aggregate (z.B. Anzahlen) vergleicht man im HAVING-Teil:
...
HAVING COUNT(Auftragsinfos) > 1
...
Titel: Re: Datensätze auswählen, bei denen COUNT eine Bedingung erfüllt
Beitrag von: superhit am April 24, 2018, 19:40:01
Hallo Eberhard,

hmmm...ganz hab' ich es noch nicht verstanden. Die Schwierigkeit scheint mir ja gerade zu sein, dass der COUNT-Befehl eigentlich durch eine WHERE-Clausel gesteuert werden müsste, also sinngemäß:
HAVING COUNT(Auftragsinfos WHERE Auftragsinfos LIKE 'Zurodnung')>1
Geht so etwas?

Grüße, Rainer
Titel: Re: Datensätze auswählen, bei denen COUNT eine Bedingung erfüllt
Beitrag von: ebs17 am April 24, 2018, 21:27:56
Die Mitgabe des Links auf vollständige Syntax war offensichtlich umsonst. Das Lesen des Inhalts hätte diese Frage erübrigt.
SELECT
   Auftragsnummer
FROM
   TabelleX
WHERE
   Auftragsinfos LIKE 'Zuordnung*'
GROUP BY
   Auftragsnummer
HAVING
   COUNT(*) > 1

Zur Wiederholung: HAVING ist ein WHERE, allerdings auf Aggregate (Summen, Anzahlen, Maxima, Durchschnitte), die über ein Gruppieren erzeugt werden.
Titel: Re: Datensätze auswählen, bei denen COUNT eine Bedingung erfüllt
Beitrag von: superhit am April 25, 2018, 08:16:02
Hallo Eberhard,

jetzt ist der Groschen gefallen (gibt's zwar nicht mehr, gilt aber immer noch...) Vielen Dank!

Grüße, Rainer
Titel: Re: Datensätze auswählen, bei denen COUNT eine Bedingung erfüllt
Beitrag von: Lachtaube am April 25, 2018, 08:56:50
@Rainer,

in Polen gibt's den Groschen noch in Form von Grosz.