0

Daten aus einer Tabelle in eine andere übernehmen

Guten Tag,

ich habe aus einer ursprünglichen Excel-Tabelle ca. 1.000 Datensätze in eine Ninox-Tabelle ADRESSEN importiert. Sie haben eine eindeutige PERSON-ID.

Einzelne der Ninox-Daten wurden inzwischen verändert. Die Person-Ids sind jedoch gleichgeblieben.

Nun ist mir (leider zu spät) aufgefallen, dass ich ein weiteres Feld hätte importieren sollen. In der Ninox-Tabelle ADRESSEN heißt es ZIELFELD.

Ich habe nun die Daten aus der ursprüngliche Excel-Tabelle in eine zweite Ninox-Tabelle FEHLEND importiert. Diese enthält nur die Felder PERSON-ID und FEHLENDES-FELD. 

Meine Frage: Wie bekomme ich für die jeweils übereinstimmende PERSON-ID den Inhalt von FEHLEND.FEHLENDES-FELD in ADRESSEN.ZIELFELD ?

Nicht als Verknüpfung, sondern als tatsächlicher Eintrag, so dass ich anschließend die FEHLEND-Tabelle wieder löschen kann. 

 

Danke für Ideen & Anregungen.

 

Armin

10 Antworten

null
    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Armin,

    du kannst das fehlende Feld auch direk aus Excel "nachimportieren". Dazu  wieder die ganze Tabelle in Adressen importieren aber nur zwei Felder zuweisen:

    PERSON-ID FEHLENDES FEHLD. Dabei musst du bei PERSON ID die Option "Schlüssel" auswählen.

    Ansonsten kannst du einen Button erstellen (egal in welcher Tabelle):

    ---

    alert("Warte.....")

    do as server

    for i in select ADRESSEN do

    i.ZIELFELD:=first(select FEHLEND where 'PERSON-ID'=me.'PERSON-ID'.FEHLENDES-FELD)

    end

    end;
    alert("Warte.....

    Fertig!")

    ---

    Leo

    • Armin
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Herzlichen Dank für die schnelle Hilfe!

    • PEGRA
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo ich habe ein ähnliches Problem

    ich möchte aus einer Tabelle(Spielabend)

    zwei Felder (Punkte 1. Runde / Punkte 2. Runde)

    in eine neu Tabelle (temp-Spielabend) mit jeweils einem Tabelleneintrag pro Runde übertragen.

    Danach möchte ich die 50 höchsten Datensätze zu einer Gesamtsumme ausgeben.

    ich würde mich freuen, wenn mir jemand helfen könnte.

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Anbei eine Bsp. DB so wie ich deine Frage verstanden habe.
    Ich habe es mal auf die 6 höchsten Werte begrenzt.
    Wenn du die 50 höchsten Werte auswerten möchtest, musst du das Script entsprechend anpassen und aus der 6 eine 50 machen. Die if-Abfrage sollte dann auf 26 gesetzt werden.

      • PEGRA
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Hallo Uwe

      ich habe dir die Ninox Datenbank "Pokalliste 2022.ninox" angefügt.

      ich glaube ich habe mich falsch ausgedrückt

      ich meine ich möchte die 50 höchsten Punkte aus der Tabelle Spielabend (1.R.Pu. / 2.R.Pu.)  zählen. Ich habe dafür das Feld Ges.Punkte - vorgesehen.

      Ich würde mich freuen, wenn Du mir nochmals weiterhelfen köntetest

      Gruß Peter

      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      PE-GRA 
      Du möchtest im Feld Ges.Punkte ein Ergebnis aus der Untertabelle 'Anwesende am Spielabend' haben, welches auf max. 50 Einträge in der Untertabelle begrenzt ist und gleichzeitig bei mehr als 50 Einträgen nur die 50 höchsten Ges.Pu.Abend nutzt.

      Versuche mal ein Formelfeld mit folgendem Eintrag:

      var P := ('Anwesende am Spielabend' order by 'ges.Punkte');
      if cnt(P) > 50 then
          sum(slice(P.'ges.Punkte', cnt(P) - 50, cnt(P)))
      else
          sum('Anwesende am Spielabend'.'ges.Punkte')
      end

      Erklärung:
      Zeile 1: Erzeugt ein Array aufsteigend sortiert nach ges.Punkte
      Zeile 2: Fragt Anzahl der Einträge Untertabelle ab
      Zeile 3: Wenn Anzahl Untertabelle >50, ermittle Summe der letzen 50 Einträge, wobei der letzte Eintrag der mit den höchsten ges.Punkte ist.
      Zeile 5: Wenn Anzahl Untertabelle <50, ermittle Summe aller ges.Punkte der UnterTabelle

      • PEGRA
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG 

      Hallo Uwe

      ich habe mich , glaube ich, wieder falsch ausgedrückt.

      Wenn Du in die Datenbank "Pokalliste 2022.ninox" gehst, siehst Du unter der Ansicht (alle)

      die Felder "Abende" / "Listen" / "Ges. Punkte" / "Streich-Pu."

      in der Tabelle "Spielabende"  sind unter der Spalte "Li." die Anzahl der ges. gespielten Listen. Ich möchte aus allen  Listen die 50 Höchsten Ergebnisse (aus den "1.R.Pu." und "2.R.Pu.") in das Feld "Ges.Punkte -" 

      stellen und ausgeben.

      Sorry wenn ich mich nicht verständlich ausgedrückt habe.

      Gruß Peter

      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      PE-GRA Hallo Peter
      Ich weiss nicht was du möchtest.
      Die Felder, die du beschreibst finde ich nicht in der DB. Wo genau sollen die sein?
      Ich bin da wohl nicht der Richtige für.
      Sorry, da kann ich nicht weiterhelfen.

      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      PE-GRA In der von dir hochgeladenen DB finde ich bis auf "Ges.Punkt" die von dir angegebenen Felder "Abende" / "Listen"  / "Streich-Pu." nicht.
      Die Spalte "Li." finde ich auch nicht.
      Ich habe im Entwicklermodus alle Feldbezeichnugen für jede Tabelle durchgesehen und keine solche Bezeichnung entdeckt.

    • PEGRA
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe,

    ich war leider verhindert, und melde mich jetzt nochmals.

    anbei sende ich dir die Tabelle "Spielabende" aus der Datenbank "Pokalliste 2022 ab 23.09.22

    ich möchte die 50 höchsten Punkte aus den Felder (1.R.Pu. und 2.R.Pu.) aller Spielabende (Datum) in das Feld Ges.Punkte / Minus stellen.

    Wie kann ich das am besten machen ?

    ich würde mich freuen wenn Du mir helfen könntest.

    Gruß Peter