Hallo zusammen,
ich habe folgendes Problem:
In einer Tabelle sind Artikel erfasst.
A ist 10 mal vorhanden
B ist 15 mal vorhanden
C ist 5 mal vorhanden
D ist 50 mal vorhanden
Z=A+B+C
In einer Abfrage möchte ich gleichzeitig die Anzahl D und Z ermitteln
D=50
Z=30
Einzeln ist es kein Problem. Das mache ich mit den Funktionen,,Gruppierung" und ,,Anzahl" und ,,Bedingung". Geht es auch in einer Abfrage?
Vielen Dank und einen sonnigen Tag
Josef
... wenn es ein Gruppierungsmerkmal gibt, das A und B und C gemeinsam erfasst, dann ja.
MfGA
ebs
Ich versuche meine Frage mal mit Bildern zu verdeutlichen.
Ich habe folgende Tabelle:
(http://www.bilder-hochladen.net/files/jfec-2-c81e.jpg)
Wenn ich die Anzahl der Artikel A, B oder C ermitteln will, mache ich diese Abfrage:
(http://www.bilder-hochladen.net/files/jfec-3-eccb.jpg)
und erhalte dieses Ergebnis:
(http://www.bilder-hochladen.net/files/jfec-4-a87f.jpg)
Soweit so gut. Ich möchte aber in derselben Abfrage auch noch die Anzahl der Artikel von D ermitteln (sind hier im Beispiel 4). Ist das möglich?
Vielen Dank für eure Mühe!
Josef
Hallo,
nein, Du hast keine Einteilung (Gruppierung) der Artikel in der Tabelle...
Mindestens:
tblArtikel
Artikel Artikelgruppe
a gr1
b gr1
c gr1
d gr2
d gr2
d gr2
d gr2
select count(*) from tblArtikel group by Artikelgruppe
"aber in derselben Abfrage"
wenn das aber nicht unbedingt heißt: " in einer einzigen Abrfrage", dann könntest Du zwei Abfragen erstellen und beide mit einer Union-Abfrage (---> "dieselbe Abfrage") zusammenführen.
Select Count(*) As ArtikelAnzahl from tblArtikel where Artikel = "a" or Artikel ="b" or Artikel = "c"
Union
Select Count(*) as ArtikelAnzahl from tblArtikel where Artikel = "d"
Vielleicht solltest Du die eigentliche Aufgabe und die vorhandenen Daten ausführlicher schildern, damit man konkretere Vorschläge machen kann.
Hallo DF6GL,
das war genau das, was ich gesucht habe:
Select Count(*) As ArtikelAnzahl from tblArtikel where Artikel = "a" or Artikel ="b" or Artikel = "c"
Union
Select Count(*) as ArtikelAnzahl from tblArtikel where Artikel = "d"
Ich habe noch nie eine SQL-Abfrage gemacht. Du hast mich da echt weitergebracht.
Vielen Dank für Deine Hilfe
Josef
Eine Frage hab ich noch
Es kommt immer dies raus:
(http://www.bilder-hochladen.net/files/jfec-5-e4da.jpg)
Egal ob ich
SELECT Count(tbl_Artikel.Artikel) AS AnzahlvonArtikel
FROM tbl_Artikel
WHERE (((tbl_Artikel.Artikel)="a" Or (tbl_Artikel.Artikel)="b" Or (tbl_Artikel.Artikel)="c"))
UNION
SELECT Count(tbl_Artikel.Artikel) AS AnzahlvonArtikel
FROM tbl_Artikel
WHERE (((tbl_Artikel.Artikel)="d"));
oder
SELECT Count(tbl_Artikel.Artikel) AS AnzahlvonArtikel
FROM tbl_Artikel
WHERE (((tbl_Artikel.Artikel)="d"))
UNION
SELECT Count(tbl_Artikel.Artikel) AS AnzahlvonArtikel
FROM tbl_Artikel
WHERE (((tbl_Artikel.Artikel)="a" Or (tbl_Artikel.Artikel)="b" Or (tbl_Artikel.Artikel)="c"));
eingebe.
Bei der zweiten Abfrage sollte doch umgekehrte Reihenfolge 4, dann 3 rauskommen. Woran liegt das?
Hallo,
"Sortieren" (das hier ist eigentlich keine Sortierung) ist so eine Sache bei Union-Abfragen....
Wenn Du eine Info haben willst, die die Zuordnung zu den Artikeln klarlegt, dann etwa so:
SELECT "a,b,c" as Artikel, Count(tbl_Artikel.Artikel) AS AnzahlvonArtikel
FROM tbl_Artikel
WHERE (((tbl_Artikel.Artikel)="a" Or (tbl_Artikel.Artikel)="b" Or (tbl_Artikel.Artikel)="c")) order by Artikel
UNION
SELECT "d" as Artikelm, Count(tbl_Artikel.Artikel) AS AnzahlvonArtikel
FROM tbl_Artikel
WHERE (((tbl_Artikel.Artikel)="d"));
SUPER :)
Jetzt hab ich alles was ich brauche. Ich musste allerdings die Abfrage etwas umformen, da ich eine Fehlermeldung bekam.
SELECT "a,b,c" as Artikelm, Count(tbl_Artikel.Artikel) AS AnzahlvonArtikel
FROM tbl_Artikel
WHERE (((tbl_Artikel.Artikel)="a" Or (tbl_Artikel.Artikel)="b" Or (tbl_Artikel.Artikel)="c"))
UNION SELECT "d" as Artikelm, Count(tbl_Artikel.Artikel) AS AnzahlvonArtikel
FROM tbl_Artikel
WHERE (((tbl_Artikel.Artikel)="d"));
Du hast mir sehr geholfen!
Josef