Hallo,
Ich habe zwei Tische. Derjenige, den ich die große Tabelle nenne, hat Teilenummern, Preise, BLS-Indexcodes und BLS-Indexnamen. Diese Tabelle enthält einige Millionen Zeilen, die die Teilenummer duplizieren, jedoch unterschiedliche Preise und BLS-Indizes.
Meine kleine Tabelle enthält einige hundert Zeilen mit eindeutigen Teilenummern. Spalten für BLS-Index und -Namen, nicht ausgefüllt.
Ich möchte den BLS-Index und -Namen in einer kleinen Tabelle mit dem BLS-Index und -Namen aus derselben Teilenummer in der großen Tabelle der Zeile mit dem höchsten Preis füllen.
Mein Plan war:
1-wählen Sie die erste Teilenummer aus einer kleinen Tabelle
2-Wählen Sie alle Zeilen in einer großen Tabelle mit der entsprechenden Teilenummer aus.
3-Erstellen Sie eine neue Tabelle mit den vier Spalten
4-sort neue Tabelle auf Preis
5-Wählen Sie den BLS-Indexcode und -Namen mit den höchsten Preisen aus der sortierten Tabelle aus und fügen Sie ihn in die kleinere Tabelle ein, die der Teilenummer entspricht.
Folgendes habe ich, aber ich versuche nicht, die neue Tabelle zu erstellen, da ich nicht weiß, wie ich weitere Spalten kopieren soll. Jede Hilfe wäre sehr dankbar.
dt2 = Datentabelle ("v5.8_bigTable");
dt1 = Datentabelle ("smallTable");
für (i = 1, i <= 2, i ++,
if (i == 1,
dt2 << Wählen Sie Wo (dt2: partNumber == dt1: partNumber [i]);
selRows = N row (dt2 << Get Selected Rows);
dtsub = dt2 << Teilmenge (Name der Ausgabetabelle ("partNumber" || char (i)));
dtsub << Sortieren (nach (: Gesamtpreis), Reihenfolge (absteigend)):
)
);
Ich denke, es gibt einen einfacheren Weg
- Nehmen Sie Ihre kleine Datentabelle mit nur der Teilenummer und verbinden Sie diese Tabelle mit der großen Datentabelle. Es wird eine neue Tabelle mit nur den Teilenummern erstellt, die in der kleinen Datentabelle enthalten sind.
- Erstellen Sie eine zusammenfassende Datentabelle, gruppieren Sie nach Teilenummer, BLS-Code und Namen und geben Sie das statistische Maximum für den Preis an.
- Was aus der Zusammenfassung hervorgeht, sollte die gewünschte kleine Datentabelle sein.