Hallo alle.
Ich versuche, zwei Datensätze in JMP mit einer eindeutigen Kennung und einer engsten Datumsübereinstimmung zu verbinden.Ich habe hier etwas Code, der läuft und ziemlich nah an dem ist, was ich brauche, aber ich habe Probleme damit, viele zu einer Übereinstimmung zu halten.Eine eindeutige Kennung „EMP_ID_UID“ könnte (oder auch nicht) mehrere „Transaktionsdaten“ haben, und mehrere „MED_SCAN_DTIMES“ stimmen mit einem „Transaktionsdatum“ überein (weil das Transaktionsdatum ein Datum ist, an dem sich jemand für seine Schicht eingestempelt hat, und natürlich wird dies ein beschäftigter Anbieter tun wahrscheinlich mehr als ein Medikament während einer 12-Stunden-Schicht verabreichen).Was ich also brauche, ist, dass der Join mit FIRST auf "EMP_ID_UID" übereinstimmt und DANN "MED_SCAN_DTIME" mit dem neuesten "Transacation Date" übereinstimmt und viele zulässt „MED_SCAN_DTIME“, um einem einzelnen „Transaktionsdatum“ zu entsprechen.Im Moment stimmt der unten stehende Code mit der EMP_ID_UID überein und ermöglicht es, dass viele Transaktionsdaten mit einer EMP_ID_UID übereinstimmen.Es stimmt auch mit den nächsten Daten überein, ABER es erlaubt nur eine Eins-zu-Eins-Übereinstimmung der Daten.Es behält nur die engste Übereinstimmung.Gibt es eine Änderung, die ich am Join-Code vornehmen kann, um das zu erzeugen, was ich brauche?Alle mögliche Gedanken oder Unterstützung werden sehr geschätzt!Vielen Dank!
AUSWÄHLEN *
AUS „Stichprobe“ t1
LEFT OUTER JOIN "NUR Teilmenge relevanter Einheiten-Organisationscodes" t2
ON t1.EMP_ID_UID = t2.EMP_ID_UID UND t1.MED_SCAN_DTIME>t2.TransactionDate
WO t1.MED_SCAN_DTIME > t2.TransactionDate
GRUPPE NACH t1.EMP_ID_UID,t1.MED_SCAN_DTIME
HAVING abs(t1.MED_SCAN_DTIME-t2.TransactionDate)=min(abs(t1.MED_SCAN_DTIME-t2.TransactionDate))
BESTELLUNG NACH t1.EMP_ID_UID
;
Verlassen;
Ich habe dies als Ausgangspunkt für den Code verwendet:
https://communities.sas.com/t5/SAS-Data-Management/Merging-two-tables-by-choosing-the-CLOSEST-dates/mp/191428#M3975
Überprüfen Sie nur die Details.
Es hört sich so an, als hätten Sie:
eine Tabelle mit Ein- und Ausschaltzeiten für alle Anbieter, bei denen die ID die eindeutige Kennung ist
eine weitere Tabelle mit ID's und SCAN-Zeiten.
Am Ende sieht es so aus, als ob Sie sehen möchten, welche (oder wie viele) SCAN-Zeiten während jedes Clock-In-Out-Intervalls für jede ID aufgetreten sind.
Ist das nah?