Viele zu einem Tisch verbindenSehr geehrter Herr / Frau,
Ich habe zwei Tische, die ich verbinden muss
Zwei Bitten:
Anfrage 1)
Tabelle 1 enthält mehrere Einträge pro Tag

Tabelle 2 enthält 1 Eintrag pro Tag

Ich möchte die Tabellen verknüpfen, die zu „Parametersatzname und Zeitstempel“ passen.
um eine solche Tabelle zu erstellen.Wie mache ich das?

Anfrage 2)
Wie verbinde ich die ersten beiden Tabellen, sodass ich für jeden Tag nur den letzten Wert für Parameter X erhalte, wie unten gezeigt?

Irgendwelche Gedanken und Vorschläge?
Danke, Timothy
InhaltsorganisationDatenmischung und -bereinigungWindowsBetreff: Viele-zu-eins-TabellenverknüpfungWelche JMP-Version haben Sie? Wenn Sie JMP17 haben, ist es am einfachsten, die Tabellen einfach geöffnet zu haben, zum Menü „Tabellen verbinden“ zu gehen und verschiedene Optionen auszuprobieren. Anfrage 1 sollte ein sehr einfacher Join sein und für Anfrage 2 müssen Sie möglicherweise eine Zusammenfassungstabelle erstellen, bevor Sie den Join durchführen.
Auch wenn Sie in der Lage sind, uns Beispieltabellen (anonymisierte oder Mock-up-Arbeiten) zur Verfügung zu stellen, können wir Ihnen genauere Anweisungen geben.
Betreff: Viele-zu-eins-TabellenverknüpfungIch habe JMP 16.Ich habe in meinem Beitrag Modelltabellen eingefügt.Kannst du sie sehen?
Betreff: Viele-zu-eins-TabellenverknüpfungOk, wenn Sie JMP16 haben, haben Sie keinen Zugriff auf Vorschautabellen, aber Sie können die Option „Dialog geöffnet lassen“ aktivieren, sodass der Dialog immer noch geöffnet ist, wenn Sie etwas vermasseln.
Ich kann die Bilder sehen, aber das sind keine echten Tabellen, da ich sie nicht in JMP öffnen oder die Daten nicht in JMP importieren kann. Wenn Sie sie als JMP-Tabellen hinzufügen könnten, wäre es viel einfacher.
Betreff: Viele-zu-eins-TabellenverknüpfungFür Option 2 gibt es einen Dirty Hack:
Join übernimmt immer den ersten passenden Eintrag.
Also mit der Option

- wenn du umkehren die Tabellenreihenfolge (mittels absteigender Sortierung) , der „letzte“ (jetzt: erste) Wert bleibt erhalten.
Also weniger offene Tische – aber ein seltsames Gefühl, wenn das, was ich verspreche, wirklich wahr ist 
dt= new table("test", add rows(8),New Column( "Column 1",
set values([1 1 1 1 1 2 2 2])
)
);
dt << New Column( "Rank1", set each value( Col Rank( 1,:Column 1 ) ));
dt2 = dt << Subset( All rows, Selected columns only( 0 ) );
dt2: Rank1 << set name("Rank2");
dt << Sort(By( :Rank1 ),Replace Table,Order( Descending, Descending ));
dt2 << Sort(By( :Rank2 ),Replace Table,Order( Descending, Descending ));
dt << Join(
With( dt2 ),
Merge Same Name Columns,
Match Flag( 0 ),
By Matching Columns( :Column 1 = :Column 1 ),
Drop multiples( 1, 1 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 0 )
);
Betreff: Viele-zu-eins-TabellenverknüpfungDanke für die Antwort.Ich bin beim Erstellen einer virtuellen Kolumne etwas verwirrt.Könnten Sie das näher erläutern?
Vielen Dank
Betreff: Viele-zu-eins-TabellenverknüpfungVirtuelle Spalte erstellen ~ Spalte transformieren:
Klicken Sie mit der rechten Maustaste auf eine der Spalten in der Liste und wählen Sie Zeile/Zeile aus:

Betreff: Viele-zu-eins-TabellenverknüpfungHier sind einige visuelle Elemente zur Unterstützung @jthi Und @hogi Vorschläge
Fehler 1
Tables=>Join Verbindet Tabelle 2 mit Tabelle 1

Ausgabe 2
Tabellen=>Sortieren Erstellen Sie eine virtuelle Spalte und nennen Sie sie Zeile.......die Formel für die Spalte lautet Row()

Dann
Tabellen=>Verbinden Verbinde Tabelle 1 mit Tabelle 2

Hier ist die JSL, mit der die beiden Probleme ausgeführt werden
names default to here(1);
dt1 = New Table( "Table 1",
Add Rows( 6 ),
New Column( "Parameter Set Name",
Character,
Set Values(
{"27109N5", "27109N5", "27109N5", "27109N5", "27109N5", "27109N5"}
)
),
New Column( "Timestamp",
Format( "yyyy-mm-dd", 12 ),
Input Format( "yyyy-mm-dd" ),
Set Values(
[3600115200, 3600115200, 3600201600, 3600201600, 3600201600, 3600201600]
)
),
New Column( "Parameter X",
Set Values( [2.32, 1.21, 1.45, 1.45, 7.89, 2.04] )
)
);
dt2 = New Table( "Table 2",
Add Rows( 2 ),
New Column( "Parameter Set Name",
Character,
Set Values( {"27109N5", "27109N5"} )
),
New Column( "Timestamp",
Format( "yyyy-mm-dd", 12 ),
Input Format( "yyyy-mm-dd" ),
Set Values( [3600115200, 3600201600] )
),
New Column( "Parameter Y",
Format( "Best", 12 ),
Set Values( [21, 22] )
)
);
// Join data tables
// → Data Table( "One to Many" )
Data Table( "Table 1" ) << Join(
With( Data Table( "Table 2" ) ),
Merge Same Name Columns,
By Matching Columns(
:Parameter Set Name = :Parameter Set Name, :Timestamp = :Timestamp
),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 ),
Output Table( "One to Many" )
);
// Create the Many to One table
// Sort data table
Data Table( "Table 1" ) << Sort(
By(
:Parameter Set Name,
:Timestamp,
Transform Column( "Row", Formula( Row() ) )
),
Replace Table,
Order( Ascending, Ascending, Descending )
);
// Join Table 1 to Table 2
// Join data tables
// → Data Table( "Many to One" )
Data Table( "Table 2" ) << Join(
With( Data Table( "Table 1" ) ),
Merge Same Name Columns,
By Matching Columns(
:Parameter Set Name = :Parameter Set Name, :Timestamp = :Timestamp
),
Drop multiples( 1, 1 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 ),
Output Table( "Many to One" )
);