0

Ansicht Tabelle Abfrage Kreuztabelle

zwei Tabellen: Lerngruppe und Schüler sind über eine Kreuztabelle Teilnahme in m:n in Beziehung gesetzt. Nun sollen bei der Lerngruppe alle Schüler in einer Ansichtstabelle angezeigt werden, die dort Teilnehmer sind. Mit:

let my := Nr; select 'Schüler' where Teilnahme.Lerngruppe.Nr = my

funktioniert das nur bedingt: Wenn ein Schüler Teilnehmer in zwei Lerngruppen ist (z. B. Mathematik (Nr. 1) und Deutsch (Nr.2), dann ist diese Abfrage stets false. my wäre hier 1, 2 und damit ungleich 1 und ungleich 2. Sobald ein Schüler also in mehr als einer Lerngruppe Teilnehmer ist, scheint er in keiner Lerngruppe mehr in der Ansichtstabelle auf. Müsste wohl

… where Teilnahme.Lerngruppe.Nr ENTHÄLT my heißen.

Wie müsste man das coden?

9 Antworten

null
    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

     

    mal unabhängig von der gezielten Frage nach dem Code [(select Tabelle where contains(worin,was))] - das Problem lässt sich doch mit Hausmitteln lösen.

     

    Du hast in der Lerngruppe doch eine Ansicht Deiner Kreuztabelle - da kannst Du als anzuzeigende Spalten durchaus die Felder der verknüpften Einträge auswählen.

    Ich habe das für Ansprechpartner ähnlich gelöst. Ich habe ein Tabelle "Ansprechpartner", eine Tabelle "Projekte" und eine Tabelle, in der ich die zusammenbringe: "Projekt-Ansprechpartner". Die anzuzeigenden Spalten dieser n:m-Tabelle im Projekt habe ich so gewählt:

    Screenshot 2018-10-09 00.15.27

     

    lg, Torsten

    • Claus
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke für die Antwort. Sicherlich kann ich die Kreuztabelle zum Anzeigen nehmen. Leider gelangt man dann bei Auswahl eines Eintrag zunächst in der Kreuztabelle. Ich würde aber gerne – da ich das oft brauche – gleich in einem Schritt bei den Schülerdaten landen. Deshalb die Ansichtstabelle. Leider werden aber nur die Schüler gelistet, die ausschließlich in einer Lerngruppe sind. Wenn ein Schüler in zwei oder mehr Lerngruppen teilnimmt, erscheint er mit dem obigen Script überhaupt nirgends mehr in den Ansichtstabellen.

    • Claus
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke für die Antwort. Sicherlich kann ich die Kreuztabelle zum Anzeigen nehmen. Leider gelangt man dann bei Auswahl eines Eintrag zunächst in der Kreuztabelle. Ich würde aber gerne – da ich das oft brauche – gleich in einem Schritt bei den Schülerdaten landen. Deshalb die Ansichtstabelle. Leider werden aber nur die Schüler gelistet, die ausschließlich in einer Lerngruppe sind. Wenn ein Schüler in zwei oder mehr Lerngruppen teilnimmt, erscheint er mit dem obigen Script überhaupt nirgends mehr in den Ansichtstabellen.

    • Claus
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Komme mit dem Codevorschlag nicht klar. Ninox sagt, Funktion contains wäre nicht bekannt.

    • Alexander_Koenig
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hi Claus, stelle die Frage gerne mal im Webinar.

    CG, Alex

    • Claus
    • vor 5 Jahren
    • Gemeldet - anzeigen

    War komplett auf dem Holzpfad.

    Es reicht in der Ansichtstabelle in Funktion zu schreiben

     

    Teilnahme.'Schüler'

     

    Also die Kreuztabelle und was man davon dargestellt haben will.

    Nun kommt man bei Klick eines Schülers in dieser Ansichtstabelle direkt zum Schüler. Prima!!!

    Der Vorschlag mit Selcect … where führt leider nicht zum Ziel

    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Claus,

     

    vielen Dank für die Rückmeldung. Ich hab mir selbst schon den Kopf zermartert und Alex im Rahmen des Ninox-Camps in Frankfurt mit in's Boot geholt - ohne Erfolg, wohl auch der Zeit geschuldet. Manchmal ist es doch einfacher, als man denkt...

     

    lg, Torsten

    • ScyDes
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hey Claus
    Ich hab ein ähnliches Problem, wo ich Spieler mit mehreren Events verknüpfen will.
    Meine Kreuztabelle heisst dann Player<->Event.
    Beim Spieler möcht ich gern alle Events gelistet haben an denen er teilgenommen hat und direkt im Event landen statt auf der Kreuztabelle.
    wenn ich nun aber in der Ansichtsfunktion entsprechend deiner Lösung Player<->Event.Event.'Name' eingebe geschieht da gar nichts. Kommt hinzu dass NINOX bei mir den string so gar nicht zulässt. Setzt bei Player<->Event bereits '' drum rum (weil verknüpfung nehm ich an..?

    Kannst du deine Lösung noch weiter ausführen?

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo ScyDes,

     

    im Gestaltungselement "Ansicht" sollte das genügen:

     

    'Player<->Event'.Event

     

    Dort kannst Du die Spalte "Name" anzeigen lassen. Die einfachen Anführungsstriche setzt Ninox bei Feld- oder Tabellenbezeichnungen, die Sonder- oder Leerzeichen enthalten.

     

    lg, Torsten

Content aside

  • vor 4 JahrenZuletzt aktiv
  • 9Antworten
  • 2982Ansichten