Hallo allerseits!
Ich habe ein Problem, bei dem ich die unten gezeigte Datentabelle 1 mit einer Zeitstempelspalte und verschiedenen Datenspalten habe
| Zeitstempel | Spalte A | Spalte B |
| 08.02.2021 11:45 Uhr | A1 | B1 |
| 08.02.2021 13:39 Uhr | A2 | B2 |
| 08.02.2021 23:37 Uhr | A3 | B3 |
| 13.02.2021 00:01 Uhr | A4 | B4 |
| 13.02.2021 16:00 Uhr | A5 | B5 |
| 13.02.2021 22:22 Uhr | A6 | B6 |
| 18.02.2021 9:00 Uhr | A7 | B7 |
| 18.02.2021 12:01 Uhr | A8 | B8 |
| 21.02.2021 9:15 Uhr | A9 | B9 |
| 21.02.2021 11:50 Uhr | A10 | B10 |
| 21.02.2021 15:00 Uhr | A11 | B11 |
Und Datentabelle 2 auch mit einer Zeitstempelspalte und entsprechenden Datenspalten
| Zeitstempel | Spalte C | Spalte D |
| 08.02.2021 11:24 Uhr | C1 | D1 |
| 13.02.2021 00:07 Uhr | C2 | D2 |
| 18.02.2021 10:29 Uhr | C3 | D3 |
| 21.02.2021 11:16 Uhr | C4 | D4 |
Ich möchte diese beiden Datentabellen zusammenfügen, wobei ich die Zeitstempelspalte von Datentabelle 1 behalte, aber die Spalten C und D von Datentabelle 2 in Datentabelle 1 verbinde, wo die Daten ab der im Zeitstempel in Daten angegebenen Zeit angewendet werden Tabelle 2.Die resultierende Spalte würde so aussehen:
| Zeitstempel | Spalte A | Spalte B | Spalte C | Spalte D |
| 08.02.2021 11:45 Uhr | A1 | B1 | C1 | D1 |
| 08.02.2021 13:39 Uhr | A2 | B2 | C1 | D1 |
| 08.02.2021 23:37 Uhr | A3 | B3 | C1 | D1 |
| 13.02.2021 00:01 Uhr | A4 | B4 | C1 | D1 |
| 13.02.2021 16:00 Uhr | A5 | B5 | C2 | D2 |
| 13.02.2021 22:22 Uhr | A6 | B6 | C2 | D2 |
| 18.02.2021 9:00 Uhr | A7 | B7 | C2 | D2 |
| 18.02.2021 12:01 Uhr | A8 | B8 | C3 | D3 |
| 21.02.2021 9:15 Uhr | A9 | B9 | C3 | D3 |
| 21.02.2021 11:50 Uhr | A10 | B10 | C4 | D4 |
| 21.02.2021 15:00 Uhr | A11 | B11 | C4 | D4 |
Vielen Dank im Voraus für jede Hilfe!
Natürlich hast du recht @txnelson . Ich habe einfach zu schnell geschaut. Ich habe meine ursprüngliche Antwort bearbeitet.
@Dan_Obermiller
2 der Zeilen stimmen basierend auf dem Datum nicht überein.Der gezeigte Tabellenabgleich scheint auf einem früheren Datum zu basieren, das dem Zieldatum am nächsten liegt.
In Ihrem kleinen Beispiel sieht es so aus, als würden Sie nur auf der Grundlage des Datums und nicht der Uhrzeit abgleichen. Könnte das möglicherweise stattdessen funktionieren?
EDIT: Sie können diesen Kommentar getrost ignorieren. Ich hatte mir das Beispiel zu schnell angeschaut.
Hier ist ein Skript, das den Abgleich, den Sie in Ihrem Beispiel haben, dupliziert.

Der eigentliche Arbeitsteil des Skripts umfasst weniger als 20 Zeilen.Der Vollständigkeit halber habe ich die JSL, die Ihre ursprünglichen Beispieldatentabellen erstellt, am Anfang des Skripts eingefügt.Dadurch können Sie das Skript einfach ausschneiden und einfügen und es sollte ohne Fehler ausgeführt werden.
Names Default To Here( 1 );
dt = New Table( "Base",
Add Rows( 11 ),
New Column( "Timestamp",
Numeric,
"Continuous",
Format( "m/d/y h:m", 19 ),
Input Format( "m/d/y h:m" ),
Set Values(
[3695629500, 3695636340, 3695672220, 3696019260, 3696076800, 3696099720, 3696483600, 3696494460, 3696743700,
3696753000, 3696764400]
)
),
New Column( "Column A",
Character( 16 ),
"Nominal",
Set Values( {"A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11"} )
),
New Column( "Column B",
Character( 16 ),
"Nominal",
Set Values( {"B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11"} )
)
);
dt2 = New Table( "Match",
Add Rows( 4 ),
New Column( "Timestamp",
Numeric,
"Continuous",
Format( "m/d/y h:m", 19 ),
Input Format( "m/d/y h:m" ),
Set Values( [3695628240, 3696019620, 3696488940, 3696750960] )
),
New Column( "Column C", Character( 16 ), "Nominal", Set Values( {"C1", "C2", "C3", "C4"} ) ),
New Column( "Column D", Character( 16 ), "Nominal", Set Values( {"D1", "D2", "D3", "D4"} ) )
);
// Here is the actual matching code
dt << New Column("TheRow");
dt2 << New Column("TheRow", formula(Row()));
// Find the row in the Match data table that is to be paired with the row
// in the Base data table
For( i = 1, i <= N Rows( dt ), i++,
dt:theRow[i] = Max( dt2 << get rows where( dt2:timestamp <= dt:Timestamp[i] ) )
);
// Update data tables
Data Table( "Base" ) << Update(
With( Data Table( "Match" ) ),
Match Columns( :TheRow = :TheRow )
);
// Delete column: TheRow
Data Table( "Base" ) << Delete Columns( :TheRow );
// Delete column: TheRow
Data Table( "Match" ) << Delete Columns( :TheRow );