JA/NEIN Feld Kriterium in Abfrage

Hier können die JVerein-Frischlinge ihre Fragen stellen.

Moderator: heiner

Antworten
ogs-RWo
Beiträge: 7
Registriert: Donnerstag 22. September 2011, 19:45

JA/NEIN Feld Kriterium in Abfrage

Beitrag von ogs-RWo »

Hallo,

ich versuche schon einige Tage für unsere OGS Betreuung eine Abfrage zu generieren,
über alle Kinder, welche ein bestimmtes Kriterium erfüllen.
Dazu habe ich weitere Zusatzfelder definiert, und zwar Klasse und OGS-Mitglied.
Ich möchte alle Kinder auflisten, welche in der OGS angemeldet sind mit Name,Vorname ( beide aus der Mitgliedtabelle) und Klasse ( aus der Zusatzfeldertabelle).
Da mir die Auswertung über JVerein nicht ausreicht, möchte ich diese Abfrage über Open Office generien, um damit direkt ein Kalenderblatt zu füllen.

Leider bekomme ich die Abfrage aber nicht so hin, wie ich es mir vorstelle, sondern erhalte mit folgender Definition
alle Kinder mit ihrer Klasse aufgelistet, und die, welche in der OGS angemeldet sind tauchen doppelt auf.
So siehts in der Entwurfsansicht aus...
So siehts in der Entwurfsansicht aus...
OGS-Abfrage_23.09.jpg (70.81 KiB) 5458 mal betrachtet
...und so in SQL Darstellung
...und so in SQL Darstellung
OGS-Abfrage_SQL_23.09.jpg (89.71 KiB) 5458 mal betrachtet

Wie kann ich die Abfrage so abändern, das eben nur die Kinder, welche das OGS=WAHR Kriterium erfüllen angezeigt werden.

Gruß

RWo
ChristianL
Beiträge: 10
Registriert: Freitag 23. September 2011, 13:42

Re: JA/NEIN Feld Kriterium in Abfrage

Beitrag von ChristianL »

Hallo,

mit dem Schlüsselwort DISTINCT werden alle doppelten eleminiert.

Du musst wissen, dass AND stärker bindet als OR. Siehe dazu hier http://www.teialehrbuch.de/Kostenlose-K ... toren.html
D.h. Du suchst entweder Mitglieder die OGS und Felddefinition true ODER einfach nur das Label Klasse bestitzen.

Vielleicht hilft Dir das ja weiter.
Wenn nicht bräucht ich mal die Tabellen Beschreibung mit Primary Key und Foreign Key. Dann kann ich Dir besser weiter helfen.

Grüße
ogs-RWo
Beiträge: 7
Registriert: Donnerstag 22. September 2011, 19:45

Re: JA/NEIN Feld Kriterium in Abfrage

Beitrag von ogs-RWo »

Hallo,

danke erst mal für Deine Hilfe.
Muß mich noch mit dem Link auseinander setzen.
Denke aber Distinct hilft mir hier nicht weiter, ich laß mich aber gerne überzeugen.

Nochmals zur Verdeutlichung, folgende drei Tabellen sind miteinender in jverein verknüpft, siehe Bild 1
Abfrage Entwurfsansicht
Abfrage Entwurfsansicht
Abfrage-Entwurfsansicht.jpg (188.93 KiB) 5447 mal betrachtet
Ziel ist es die Abfrage mit den Daten der Kinder zu füllen, welche zur Zeit in der OGS angemeldet sind. Das ist das Auswahlkriterium.
Ich möchte aber aus der Mitglieder Tabelle den Namen und Vornamen und aus der Zusatzfeldertabelle die aktuelle Klasse mit anzeigen.
Im Moment zeigt die Abfrage aber alle Kinder mit ihrer Klasse und die welche in der OGS angemeldet sind nochmal, also doppelt an, weil ich die Kriterien oder verknüpft habe.
Das will ich verhindern. Komme aber nicht auf die Lösung für die richtige Abfrage.
Es gibt mehrere Felder in Zusatzfelder, welche JA/Nein definition besitzen.
OGS; Vormittagsbetreuung; Nichtmitglied;
Eigentlich würde ich es so in Worten definieren:
Zeige alle Mitgleider mit Name, Vorname und Klasse( ohne Einschränkung ) ( und nur ) welche OGS = True haben.

Besipiel:

Frank Mustermann 4a ( hat OGS = True)
Otto John Doe 3c ( hat Vormittagsbetreuung = True)

Dann sollte die Abfrage nur liefern:
Frank Mustermann 4a

Aber wie setze ich das jetzt in der Abfrage richtig um.


Hier noch die Tabellenbeschreibungen:
Tabelle Mitglieder
Tabelle Mitglieder
Tabelle-Mitglied.jpg (102.48 KiB) 5447 mal betrachtet
Tabelle Zusatzfelder
Tabelle Zusatzfelder
Tabelle-Zusatzfelder.jpg (75.62 KiB) 5447 mal betrachtet

Gruß

RWo
ogs-RWo
Beiträge: 7
Registriert: Donnerstag 22. September 2011, 19:45

Re: JA/NEIN Feld Kriterium in Abfrage

Beitrag von ogs-RWo »

Hier nochmal der derzeitige Ergebnis der Abfrage:
OGS-Abfrage_23.09_opti.jpg
OGS-Abfrage_23.09_opti.jpg (91.31 KiB) 5447 mal betrachtet
Die einträge in den Kästchen gehören immer zu einem Kind, davon will ich nur den mit der Klasse sehen und die anderenr Kinder ohne OGS eintrag will ich gar nicht sehen. Dazu muß die Oder Verknüpfung eigentlich in eine UND Verknüpfung geändert werden, dann kommt aber ein leere Tabelle dabei heraus.

Gruß

RWo
ChristianL
Beiträge: 10
Registriert: Freitag 23. September 2011, 13:42

Re: JA/NEIN Feld Kriterium in Abfrage

Beitrag von ChristianL »

Hallo RWo,

Distinct habe ich nur ins Spiel gebracht, da Du was von doppelten einträgen geschrieben hast.

Zu Deiner Anfrage, wenn die einzige Bedingung die zu erfüllen ist, dass Label = "OSG" und FeldJaNein=true, dann sieht die Anfrage wie folgt aus:

Code: Alles auswählen

select distinct MITGLIED.NAME as 'NAME', MITGLIED.VORNAME as 'VORNAME', XXX.KLASSE as 'KLASSE'
from MITGLIED as M, ZUSATZFELDER as Z, FELDDEFINITIONEN as F
where M.ID = Z.MITGLIED and Z.FELDDEFINITION = F.ID 
and F.LABEL = 'OGS' and Z.FELDJANEIN = True
Beachte: ersetze XXX.KLASSE mit der Tabelle und Spalte in der die Klasse zu finden ist.

Die Anfrage erfüllt jetzt genau diese Beschreibung von Dir.
Zeige alle Mitgleider mit Name, Vorname und Klasse( ohne Einschränkung ) ( und nur ) welche OGS = True haben.
Ich hoffe das klappt so, ich kann es leider nicht testen.
Aber rein logisch sollte es stimmen wenn ich es richtig verstanden hab :)

Grüße
Christian
ogs-RWo
Beiträge: 7
Registriert: Donnerstag 22. September 2011, 19:45

Re: JA/NEIN Feld Kriterium in Abfrage

Beitrag von ogs-RWo »

Hallo Christian,

danke für deine Geduld, hat aber leider auch nicht funktioniert.
Ich denke es liegt an der Tatsache, dass sowohl das OGS JA/NEIN Feld per Zusatzfelder.LABEL ansprechbar ist, als auch das Feld Klasse.
Wenn ich nämlich beide der Abfrage hinzufüge erhalte ich eine leere Tabelle.

Ich werde mir eine andere Lösung überlegen, wie ich diese Kriterien in einer Liste darstelle.

Dank dir trotzdem für Deine Hilfe.

Gruß

René Wolters
ChristianL
Beiträge: 10
Registriert: Freitag 23. September 2011, 13:42

Re: JA/NEIN Feld Kriterium in Abfrage

Beitrag von ChristianL »

Hallo Rene ( Sorry ich weiß nicht wie ich den Strich auf das e bekomme )

Das ist doch ein lösbares Problem, ich hatte einfach übersehen wo die Klasse hinterlegt ist. Irgendwie habe ich die Tatsache ignoriert dass es ein weiteres Zusatzfeld ist.
Also mal schauen ob ich eine Lösung mit entsprechender Subquery auf Anhieb hinbekomme

Code: Alles auswählen

    select distinct MITGLIED.NAME as 'NAME', MITGLIED.VORNAME as 'VORNAME', X.FELD as 'KLASSE'
    from MITGLIED as M, ZUSATZFELDER as Z, FELDDEFINITIONEN as F, (
        select distinct ZUSATZFELDER.FELD, MITGLIED.ID
        from MITGLIED as MI, ZUSATZFELDER as ZU, FELDDEFINITIONEN as FE
        where MI.ID = ZU.MITGLIED and ZU.FELDDEFINITION = FE.ID
        and FE.LABEL = 'Klasse' ) as X
    where X.ID = Z.MITGLIED and Z.FELDDEFINITION = F.ID
    and F.LABEL = 'OGS' and Z.FELDJANEIN = True
Dann versuch mal ob es damit funktioniert :) ganz sicher bin ich mir noch nicht, denn die joins muss man sich schon überlegen :)
Ich bin jetzt mal davon ausgegangen, dass alle Mitglieder die OGS sind auch immer einer Klasse zugeordnet haben, wenn dem nicht so ist, muss
die äußere Anfrage die Subquery werden.

Grüße
Christian
ogs-RWo
Beiträge: 7
Registriert: Donnerstag 22. September 2011, 19:45

Re: JA/NEIN Feld Kriterium in Abfrage

Beitrag von ogs-RWo »

Hallo Christian,

wow, das geht aber ziemlich über mein Verständnis :lol:

Tschuldige, hab es leider nicht eher geschaft, dir zu antworten.
Ich habe auch versucht, deinen Vorschlag anzupassen, aber erhalte damit nur eine leere Tabelle.

Ich muß auch sagen, dass ich zwar vom Grundprizip verstanden habe, dass Du eine geschachtelte Abfrage aufgesetzt hast, aber der ganze Zusammenhang geht mir dabei doch ab.

Es läuft wohl doch darauf hinaus, wenn ich JVEREIN nutzen will, muß ich auf SQL aufsetzen, um die Auswertungen so zu erhalten, wie ich sie mir vorstelle, der direkte Export von auswertungen aus JVerein ist leider so nicht brauchbar für mich.
Es muß nunmal für die Endanwender am Ende auf einfaches Knöpfchen drücken hinauslaufen, um die Auswertungslisten zu erhalten, die sie brauchen.

Also erstmal SQL lernen..... und dann sehen wir weiter.....


Nochmals danke für Deine Unterstützung.


Gruß


RWo
Antworten