Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: YvS am August 21, 2014, 09:34:18

Titel: SQL bei Abfrage
Beitrag von: YvS am August 21, 2014, 09:34:18
Hallo,
ich möchte eine Abfrage machen, bei der ich einen bestimmten Kunden dank der KundenID auswählen kann und daraufhin soll die Anzahl der Aufträge angezeigt werden. Diese sollen sortiert sein in Anzahl Asynchronmotor ("<>mS*") und Synchronmotor ("=mS*"). Die Bedingung geht so aber nicht. Hat jemand einen Vorschlag?


SELECT MtblKunden.KundenID, MtblKunden.Kundenkuerzel, Count(tblDBL.Motor) AS AnzahlvonSynchronmotoren, Count(tblDBL.Motor) AS AnzahlvonAsynchronmotoren
FROM MtblKunden INNER JOIN tblDBL ON MtblKunden.KundenID = tblDBL.Kunde
GROUP BY MtblKunden.KundenID, MtblKunden.Kundenkuerzel;
Titel: Re: SQL bei Abfrage
Beitrag von: MzKlMu am August 21, 2014, 09:46:39
Hallo,
mir ist nicht klar, wie die Motorenart unterschieden wird.
Und in welchem Feld steht die Motorart?
Titel: Re: SQL bei Abfrage
Beitrag von: YvS am August 21, 2014, 09:53:18
Die Motorart kann durch die Motorbezeichung abgelesen werden. Bei einem Synchronmotor ist die Bezeichnung "mS..123.456." Bei einem Asynchronmotor gibt es viele unterschiedliche Namen wie  "mW..123.456."  aber NIE das "mS" vom Snchronmotor. Die Motorart ist in der "tblDBL" in der Spalte "Motor" enthalten.
Titel: Re: SQL bei Abfrage
Beitrag von: DF6GL am August 21, 2014, 10:18:40
Hallo,

das ließe sich z. B. so lösen:

...Where Left([Motor],2) ="ms"...

bzw.
...Where Left([Motor],2) <>"ms"...

vorausgesetzt, die "Motorart" steht immer als 2 Zeichen am Anfang (links) der Motorbezeichnung


Alternativ:

...Where [Motor] like "ms*"...

bzw.
...Where [Motor] not like "ms*"...