0

Abfrage einer Tabellenspalte

Hallo zusammen,

 

ich habe eine Tabelle mit Artikeln (nenner wir sie X). aus dieser Tabelle habe ich eine Untertabelle, wo ich das Material Entnehme (Tabelle Y).

Ich würde nun gerne in Tabelle X abfragen, ob es in diesem Jahr eine Entnahme gab also von Tabelle Y.

Bei Tabelle Y habe ich auch ein Datum wann die Entnahme war.

Allerdings habe ich grade keinen Ansatz, wie ich da eine Spalte in Tabelle X einrichten kann, um diese Artikel abzufragen.

 

Gruss Michael

7 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Michael, falls ich die Aufgabenstellung richtig verstehe, könnte man in 'TabelleX' ein Funktionsfeld erstellen, dort die Zahl mit cnt() die Zahl entsprechende Datensätze in (Unter-) TabelleY ermitteln und das Ergebnis auswerten. Zum Beispiel so:

     

    let myE := cnt(TabelleY[year(Datum) = year(today()));
    if myE > 0 then true else false end

     

    Als Ergebnis würde "Ja" oder "Nein" angezeigt.

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Autsch ... Sollte heißen "[...] dort mit cnt() die Zahl entsprechender Datensätze in (Unter-) TabelleY ermitteln [...]"

     

    So viel Zeit muss sein. ;)  

    • SL Recycling
    • Michael_Lubbehusen
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich habe es nun mal eingetragen

    let myE := cnt('3_Artikel'.Entnahme.[year(Datum)] = year(today()));
    if myE = 0 then true else false end

    Egal wie ich die Abfrage einstelle ob > = oder < es kommt bei allen das gleiche ergebnis

     

    zu meinem grundgedanken. ich möchte sehen in welchem jahr das Material aus dem Lager genommen wurde. 

    eine ja oder Nein abfrage ist auch okay, könnte ich dann für mich ja anpassen :) 

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Da fehlte die abschließende eckige Klammer (an der richtigen Stelle):

     

    let myE := cnt(TabelleY[year(Datum) = year(today())]);

     

    Davon abgesehen: "OB in DIESEM Jahr" ist ganz was anderes als "IN WELCHEM Jahr". Die Abfrage zu letzterem müsste ganz anders aussehen und würde auch noch eine weitere Information voraussetzen. Denn die Untertabelle kann ja mehrere Datensätze aus verschiedenen Jahren enthalten. Um welche Entnahme geht es also? Um die erste? Die letzte? Oder gibt es noch ein anderes Kriterium zur Beantwortung der Frage "In welchem Jahr"?

    • SL Recycling
    • Michael_Lubbehusen
    • vor 3 Jahren
    • Gemeldet - anzeigen

    puh ich glaub ich brauch ne brille haha. ja nun funktioniert es mit ja und nein

    also die aufgaben stellung ist einfach die, das ich die material entnahme für eine Inventur nach jahren sortiert haben möchte. 

    oder besser gesagt das mir nur die entnahmen angezeigt werden, welche im Jahr xxxx verbucht wurden.

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Nee, das mit der eckigen Klammer war mein Fehler. Hatte ich vergessen. Passiert schon mal, wenn man's nicht live testet.

     

    Okay, "alle im Jahr X" ist jetzt die dritte Variante. ;) Kriegt man aber auch hin. Zwei Möglichkeiten (jeweils in TabelleX): Entweder direkt in der verknüpften Untertabelle einen Filter auf das Jahr setzen. Oder ein numerisches Feld zur Eingabe des Jahres ('Jahr') und eine Ansicht (Gestaltungselement) erstellen. In den Optionen der Ansicht könnte man bei "Funktion" folgendes eintragen:

     

    if Jahr then
       let me := this;
       select TabelleY where TabelleX = me and year(Datum) = me.Jahr
    else
       select TabelleY
    end

    • SL Recycling
    • Michael_Lubbehusen
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Gott es kann teilweise so einfach sein. Ja über die Spalten einfach year(Datum) und fertig.

    ich denke teilweise zu kompliziert.

    Besten dank