0

Einfache Subtraktion über zwei Mitteltabellen hinweg

Hallo liebe Ninox-Community,

noch bin ich alles andere als fit in Ninox und schon gar nicht beim Scripting. Ich bin ganz neu hier und habe folgende Problemstellung:

Ich habe in meiner Datenbank, neben vielen anderen, folgende vier für das Problem relevante Tabellen:

  1. Die erste listet die Namen und sonstige Daten von Schauspielern auf und heißt "DARSTELLER",
  2. Die zweite kümmert sich um alle Informationen zu bestimmten Filmen, in denen die Schauspieler aus der ersten Tabelle mitgewirkt haben und heißt "ORIGINALFILM". Die Schauspieler haben aber nicht alle in allen Filmen mitgespielt, sondern waren immer nur für verschiedene Zeiten dabei. Beispiel: Schauspieler 1 war vom 2. bis zum 7. Film dabei, Schauspieler 2 vom 17. bis zum 42. Film und Schauspieler 3 von 117. bis zum 221. Film. Um diese Informationen festzuhalten habe ich zwei Mitteltabellen erstellt.
  3. In der ersten Mitteltabelle (mit Namen "Darsteller - Originalfilm Start") wird zu jedem Schauspieler erfasst, welche Filmnummer seine erste war. Beispiel: Bei Schauspieler 1 war das (siehe weiter vorne) Film Nummer 1, bei Schauspieler 2 Film Nummer 17 und bei Schauspieler 3 Film Nummer 117. In allen Fällen steht in der Mitteltabelle auch der Titel des Films.
  4. Die zweite Mitteltabelle (mit Namen "Darsteller - Originalfilm Ende") listet analog zur ersten Mitteltabelle auf, in welchem Film der jeweilige Schauspieler seinen letzten Auftritt hatte und gibt ebenfalls jeweils den Titel des Films mit an. Bei Schauspieler 1 war der 7. Film der letzte Film, bei Schauspieler 2 der 42. Film und bei Schauspieler 3 war es der 221. Film.

In der Tabelle der Schauspieler ("DARSTELLER") möchte ich nun in einem Feld mit dem Namen "ANZAHL FILME" zum jeweiligen Schauspieler die Anzahl der Filme errechnen lassen, in der er dabei war. Beispiel: Schauspieler 1 war (wie oben beschrieben) vom 2. bis zum 7. Film dabei. Das macht insgesamt 6 Filme.

Frage: Wie müsste/könnte die Formel bzw. das Skript dazu aussehen?

Vielen Dank im Voraus und viele Grüße

Stefan V.

7 Antworten

null
    • stefan.10
    • vor 9 Monaten
    • Gemeldet - anzeigen

    Ich hatte vergessen zu erwähnen, dass in beiden Mitteltabellen das Feld, in der die Filmnummer gespeichert wird "Produktion#" heißt. 

    • mirko3
    • vor 9 Monaten
    • Gemeldet - anzeigen

    Hi Stefan. Klingt nicht unmöglich. Wäre aber erleichternd für einen Tipp, das Datenmodell aus der Datenbankeinstellung zu kennen. Poste doch mal einen Screenshot davon. Mirko

    • stefan.10
    • vor 9 Monaten
    • Gemeldet - anzeigen

    Hi Mirko, lieben Dank für deine Antwort. Derzeit bin ich für eine Woche auf Sardinien. Ich melde mich nach dem 14.09., da ich das von hier aus leider nicht nachsehen kann. Die Datenbank ist nicht online verfügbar. Ich melde mich 😉

    • stefan.10
    • vor 9 Monaten
    • Gemeldet - anzeigen

    Hallo Mirko,

    bin nun wieder zurück und habe einen Screenshot des Datenmodells angehangen, von dem ich jedoch nicht sicher bin, ob er tatsächlich hilfreich ist, da einige Objekte nicht oder nicht mehr genutzt werden. Die werde ich erst löschen, wenn ich etwas sicherer im Umgang mit dem System bin. Alle mit "M" oder einer Ziffer beginnenden Tabellen sind Mitteltabellen.

    Viele Grüße

    Stefan

    • mirko3
    • vor 9 Monaten
    • Gemeldet - anzeigen

    Hallo Stefan. Versuche es mal so und passe vorher die Feldnamen noch an.

    let start := ('Darsteller - Originalfilm Start' order by ORIGINALFILM).'Produktion#';
    let ende := ('Darsteller - Originalfilm Ende' order by ORIGINALFILM).'Produktion#';
    let film := ('Darsteller - Originalfilm Start' order by ORIGINALFILM).ORIGINALFILM.Filmname;
    join(for i in range(0, cnt('Darsteller - Originalfilm Start')) do
        item(film, i) + ": " + (item(ende, i) - item(start, i) + 1) + " Filme"
    end, "
    ")
    
    • stefan.10
    • vor 9 Monaten
    • Gemeldet - anzeigen

    Hallo Mirko,

    vielen lieben Dank, das werde ich heute Abend oder morgen in Ruhe testen und mich dann wieder melden. Ich muss mir dabei die Syntax ganz genau ansehen, um es zu verstehen, damit ich es auch lerne ;-)

    Viele Grüße

    Stefan

    • stefan.10
    • vor 9 Monaten
    • Gemeldet - anzeigen

    Hallo Mirko,

    vielen Dank, ich habe es mehrfach in verschiedenen Varianten versucht, bekomme es aber nicht hin. Da ich nicht fit genug bin, um zu erklären, woran ich vermutlich genau scheitere, lasse ich es hier erstmal gut sein, bis ich insgesamt mehr dazugelernt habe ;-)

    Viele Grüße

    Stefan

Content aside

  • vor 9 MonatenZuletzt aktiv
  • 7Antworten
  • 57Ansichten
  • 2 Folge bereits