Ich versuche eine Abfrage zu erstellen, die den Namen, die Abteilung, den Supervisor und den aktuellen Status eines Mitarbeiters zurückgibt. Die fragliche Tabelle enthält jedoch historische Aufzeichnungen und aktuelle Aufzeichnungen jedes Mitarbeiters, einschließlich eines Datensatzes für jeden Vorgesetzten, jede Abteilung usw.Wie kann ich den letzten eindeutigen Datensatz aus einer Tabelle nicht in 1NF abrufen?
Wie kann ich den neuesten Datensatz für jeden Mitarbeiter abrufen? Ich habe versucht, einfach die Spalte MAX (Effective_Date) auszuwählen, um nur den letzten Datensatz zu ziehen. Allerdings bedeutet dies nicht immer mit dem Datensatz arbeiten, da jeder Datensatz eine ID für die Mitarbeiter hat, sowie eine ID für den Rekord.
Hier ist ein Beispiel für die vollständige Tabelle Setup: Filedropper.com/exampledata
Und hier ist ein Beispiel für den aktuellen Code ich habe.
use ws_er;
select
od.Master_org_dim_id
,od.Member_Last_Name + ', ' + od.Member_First_Name as [Associate Name]
,od.Member_Role as [Tier]
,od.Member_Status as [Status]
,sod.member_last_name + ', ' + sod.member_First_name as [Supervisor Name]
,MAX(od.Effective_Date) as [Effective Date]
,COUNT(od.Master_org_dim_id) as [count]
from Organization_Dim as od
inner join organization_dim as sod on sod.org_dim_id = od.supervisor_dim_id
group by
od.Master_org_dim_id
,od.Member_Last_Name + ', ' + od.Member_First_Name
,od.Member_Role
,od.Member_Status
,sod.member_last_name + ', ' + sod.member_First_name
order by [associate name] desc
Veröffentlichen Sie das Tabellen-Design. Erwarten Sie, dass wir zu einer verbundenen Quelle gehen. – Paparazzi
Es tut mir leid, ich war nicht sicher über den richtigen Weg, um das Tischdesign in den Text zu setzen. Ich werde das anpassen. – Smith