0

import von Zeilen einer Tabelle in einer anderen gesplittet in einer Untertabelle

Hallo Zusammen
Tabelle1 zu importieren (feld11,feld12,feld13,feld14) in Tabelle2  feld23,feld25, und in Tabelle3 feld36, feld37) wobei feld1  mehrmals in Tabelle1 vorkommen kann 
Tabelle2 (Kopt) und Tabelle3 (Details)

let myOBJ := unique((select Tabelle1 where ....).feld11);
for i in myOBJ do
let myTAB2 := (create Tabelle2);
myTab2(feld23 := i.feld13“);
myTab2.(feld25 := i.feld12);
...
for ii in i do                  /// hiermit soll eine Schlaufe (1-x Mal Feld 1 vorhanden)
let newPos := (create Tabelle3);
let myVAR1:= ii.feld14);      /// hier behauptet ninox : ”Der Ausdruck liefert mehrfache Ergenisse zurück“   ???
let newPos.(feld36 := myVAR1); 
let newPos.(feld37 := ii.feld17);  nnox meldet : ”eine Tabellenstalte wurde nicht gefunden: feld17“  ??? ist aber vorhanden

Ist der Konstrukt falsch? Wer kann helfen?

Beste Grüsse
Frédéric
....

4 Antworten

null
    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Frédéric,
    ist sehr verwirrend , mal Feld1, mal Feld11. Ich versuche es mit eigenen Worten. Es gibt eine Tabelle1 die nach Ninox importiert wird (aus CSV) dort gehören die Felder 11,12,13 zu einem Kunden. Diese können in mehreren Zeilen gleich sein wenn der Kunde mehrere Positionen hat. Die Felder 14,15,16 beschreiben die Positioneigenschaften. Ziel ist es die Tabelle auf zwei Tabellen zu verteilen, wobei Die Tabelle 2 den Kunden umfasst und die Tabelle3 als Untertabelle zu der Tabelle2 aufgebaut ist. Dan würde ich folgende Formel vorschlagen.

    ---

    let myOBJ:=unique((select Tabelle1 where ....).feld11);
    for i myOBJ do
    let myTab1:=first(select Tabelle1 where Feld11=i);
    let newTab2:=create Tabelle2;
    newTab2:=Feld23:=myTab1.Feld13;
    newTab2:=Feld25:=myTab1.Feld12;
    for j in select Tabelle1 where Feld11=i do
    let newTab3:=create Tabelle3;
    newTab3.Tabelle2:= newTab2;
    newTab3.Feld36:=j.Feld14;
    newTab3.Feld37:=j.Feld17
    end
    end

    ----

    vobei die Zeile newTab3.Tabelle2:= newTab2; die Verknüfung aufbauen sollte.

     

    Leo

    • myDPS.swiss GmbH
    • Fredric
    • vor 3 Jahren
    • Gemeldet - anzeigen

    hallo Leo

    DANKE!

    Meine Idee war:

    Ninox-Tabelle1 beinhaltet Daten, die in einer Mutter-Tabelle2 und Untertabelle3 eingespiesst werden soll.

    • myDPS.swiss GmbH
    • Fredric
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Dachte, wenn ich aus Tabelle1 einen let myOBJ := unique((select ...).OBJNR mache

    könnte ich mit
    for i in myOBJ  do  den Pointer auf der Objekt-Nr. setzen
    dann Daten in die Muttertabelle2 speichern (das sind Spalten die nur in Tabelle2 gehören, und dann mit
    for ii in i do      um die Zeile(n) in Tabelle1 für OBJNR = myOBJ
    Daten in Tabelle3 zu speichern

    Generell stellt sich die Frage ob:
    for i in VAR do
    for ii in i do
    als Konstrukt korrekt bzw. möglich ist.

    Dein Ansatz stimmt natürlich und besten Dank für deine Bemühungen.

    Lieben Sonntagsgruss!

    Frédéric

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Frédéric,

    let myOBJ := unique((select ...).OBJNR gibt einen Array aus Werten (in diesem Fall Feld11) und nicht aus Tabellenzeilen. deswegen braucht man im zweiten Schritt auch zweiten select mit zuweisung.

Content aside

  • vor 3 JahrenZuletzt aktiv
  • 4Antworten
  • 791Ansichten