collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 37
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 1

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13570
  • stats Beiträge insgesamt: 60074
  • stats Themen insgesamt: 8221
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Access, SQL, Abfrage mit ineinander greifenden Bedingungen  (Gelesen 529 mal)

Offline weingummi

  • Newbie
  • Beiträge: 4
Access, SQL, Abfrage mit ineinander greifenden Bedingungen
« am: Februar 01, 2017, 12:54:43 »
Hallo,
 ich suche Hilfe! Ich muss eine Tabelle nach der Anzahl, bzw. Proz.Anteil Abfragen. Die Ausgangstabelle hier sehr vereinfacht dargestellt:
 Vnr Geschlecht Kind
 7893     M          J
 9948    W           N
 3847    W           N
 3492    M           N
 9458    M           J
 1236    M           J
 2459    W           J
 3489    W           N

 Jetzt soll abgefragt werden wieviel M, W und Kinder es gibt. Allerdings zählt ein Kind vollwertig und ist somit nicht mehr M oder W. Ich hoffe es wird verständlicher, wenn ich zeige wie das Ergebnis aussehen soll:
 Geschlecht Anzahl Proz.Anteil
 M                1           12,5%
 W                3           37,5%
 Kind            4           50,0%

 Bis jetzt benutze ich 2 seperate Abfragen mit jeweils M oder W:
 SELECT Geschlecht as maennlich, Count(Geschlecht) AS Anzahl
 FROM Tabellenname
 WHERE (Geschlecht) Like "M" GROUP BY Geschlecht
 UNION SELECT KIND_Kennz as Geschlecht_, Count(KIND_Kennz) AS Anzahl
 FROM Tabellenname
 WHERE (Geschlecht) Like "M" AND (KIND_Kennz) Like "J" GROUP BY KIND_Kennz;

 Danach mach ich geschwind in Excel weiter zieh die Kinder jeweils von M und W ab und mach dann eine Gesamttabelle wie oben. Dazu dann noch den prozentualen Anteil.

 Geht das aber nicht in einer Abfrage?
 

Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 744
Re: Access, SQL, Abfrage mit ineinander greifenden Bedingungen
« Antwort #1 am: Februar 01, 2017, 14:24:42 »
Wenn Dir die Ergebnisse in einer Zeile behagen (Prozente kannst Du selber ergänzen):
SELECT
   COUNT(*) AS G,
   SUM(Abs(Kind = 'J')) AS K,
   SUM((Kind = 'N') * (Geschlecht = 'M')) AS M,
   SUM((Kind = 'N') * (Geschlecht = 'W')) AS W
FROM
   EineTabelle
Mit freundlichem Glück Auf!

Eberhard
 

Offline weingummi

  • Newbie
  • Beiträge: 4
Re: Access, SQL, Abfrage mit ineinander greifenden Bedingungen
« Antwort #2 am: Februar 02, 2017, 11:11:17 »
 ;D
WOW! Vielen Dank funktioniert!
Kleine Frage zum Verständnis, ich dachte eine Abfrage besteht immer aus select/from/where, hier fehlt das where. Wieso funktioniert es aber trotzdem?
Ich versuch mich mal an die prozentuale Austeilung...
funktioniert! So:
SELECT COUNT(*) AS G, SUM(Abs(KIND= 'J')) AS K, SUM((KIND= 'N') * (Geschlecht = 'M')) AS M, SUM((KIND= 'N') * (Geschlecht = 'W')) AS W
FROM Tabelle;
union
SELECT 'proz. Aufteilung' AS G,
(SUM(Abs(KIND = 'J')))/(select count(VSNR) From Tabelle),
(SUM((KIND = 'N') * (Geschlecht = 'M')))/(select count(VSNR) From Tabelle),
(SUM((KIND = 'N') * (Geschlecht = 'W')))/(select count(VSNR) Tabelle)
FROM Tabelle;

ist jetzt nicht so schön, dass in der spalte G (für Gesamt?) jetzt proz. Aufteilung steht und nicht 100% aber das ist doch schon mal super!!!

vielen vielen Dank!!!!!!!
 

Offline MzKlMu

  • AoM Team
  • Access-Oberguru
  • *****
  • Beiträge: 6492
Re: Access, SQL, Abfrage mit ineinander greifenden Bedingungen
« Antwort #3 am: Februar 02, 2017, 11:22:54 »
Hallo,
 
Zitat
ich dachte eine Abfrage besteht immer aus select/from/where
das Wort immer ist hier fehl am Platz. Außerdem fehlt hier die Angabe der Felder.
Where ist optional. Das ist ja ein Kriterium das die Datensatzzahl einschränkt und das kann erforderlich sein oder auch nicht.
Also so:
Select Feldname(n) From TabellenName [Where][Optional]. Es gibt noch mehr optionale Parameter.
« Letzte Änderung: Februar 02, 2017, 11:31:10 von MzKlMu »
Gruß
Klaus
 

Offline weingummi

  • Newbie
  • Beiträge: 4
Re: Access, SQL, Abfrage mit ineinander greifenden Bedingungen
« Antwort #4 am: Februar 02, 2017, 11:32:14 »
Ahh, ok, deshalb hatte ich so Probleme mit der Auswertung, da ich mich mit Where immer "eingeschränkt" hatte.

Super, vielen Dank für eure Hilfe!

 

Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 744
Re: Access, SQL, Abfrage mit ineinander greifenden Bedingungen
« Antwort #5 am: Februar 02, 2017, 11:32:53 »
Zitat
ist jetzt nicht so schön, dass in der spalte G (für Gesamt?) jetzt proz. Aufteilung steht und nicht 100%
Dann schreib etwas anderes rein als diesen Text, z.B. 1

Zitat
hier fehlt das where
WHERE leitet einen Filter ein. Wenn man aber alle Datensätze sehen/verarbeiten will und nicht nur ein paar ausgewählte, wäre ein Filter ziemlich doof, oder ...
Mit freundlichem Glück Auf!

Eberhard