Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Josef am März 16, 2012, 10:11:04

Titel: Zwei Summen in einer Abfrage
Beitrag von: Josef am März 16, 2012, 10:11:04
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
Titel: Re: Zwei Summen in einer Abfrage
Beitrag von: ebs17 am März 17, 2012, 00:00:17
... wenn es ein Gruppierungsmerkmal gibt, das A und B und C gemeinsam erfasst, dann ja.

MfGA
ebs
Titel: Re: Zwei Summen in einer Abfrage
Beitrag von: Josef am März 21, 2012, 09:10:48
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
Titel: Re: Zwei Summen in einer Abfrage
Beitrag von: DF6GL am März 21, 2012, 09:31:56
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.



Titel: Re: Zwei Summen in einer Abfrage
Beitrag von: Josef am März 21, 2012, 11:05:52
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
Titel: Re: Zwei Summen in einer Abfrage
Beitrag von: Josef am März 22, 2012, 14:55:12
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?
Titel: Re: Zwei Summen in einer Abfrage
Beitrag von: DF6GL am März 22, 2012, 23:14:44
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"));

Titel: Re: Zwei Summen in einer Abfrage
Beitrag von: Josef am März 23, 2012, 08:28:13
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