Ich habe zwei Tabellen, die Menschen, die bei der Firma arbeiten und ihre Beschäftigung Informationen enthält (so ist Menschen ein Tisch, Beschäftigung ist ein anderer). Die People-Tabelle enthält Informationen darüber, wo die Person lebt, Notfallkontakt, Telefonnummer bla bla bla. Die Beschäftigungstabelle enthält Informationen darüber, wo er arbeitet, der nächste Chef und mehr. Diese Tabellen wurden beschädigt und enthalten nun einige Fehlalarme. Jetzt gibt es in beiden Tabellen eine Personen-ID, aber die Beschäftigungs-ID befindet sich nur in Beschäftigung. Ich möchte beide Nummern auf allen Personen, die dupliziert haben.Beitreten Ruine die select
Das funktioniert perfekt:
SELECT DISTINCT
pp.Personid,
pp.Firstname,
pp.Lastname,
pp.Address,
FROM People pp
JOIN People pp2
ON pp.Firstname = pp2.Firstname
AND pp.Lastname = pp2.Lastname
AND pp.Address = pp2.Address
AND pp.Personid <> pp2.Personid
ORDER BY pp.Firstname, pp.Lastname, pp.Personid
folgende Werte zurückgegeben werden (aber nicht Beschäftigung Nummer enthalten, wie Sie sehen können):
1001 Carl Johnsson Bigstreet 1
1002 Carl Johnsson Bigstreet 1
1003 Carl Johnsson Bigstreet 1
1010 Andrew Wilkinsson Smallstreet 2
1011 Andrew Wilkinsson Smallstreet 2
nun die Beschäftigung id ich, dass beitreten hinzufügen Tabelle wie folgt:
SELECT DISTINCT
pp.Personid,
e.Employmentid,
pp.Firstname,
pp.Lastname,
pp.Address,
FROM People pp
JOIN People pp2
ON pp.Firstname = pp2.Firstname
AND pp.Lastname = pp2.Lastname
AND pp.Address = pp2.Address
AND pp.Personid <> pp2.Personid
JOIN Employment e on pp.Personid = e.Personid
ORDER BY pp.Firstname, pp.Lastname, pp.Personid
Und alles geht zu h ** l in einem Handbasket mit den folgenden r eiter:
1001 1111 Carl Johnsson Bigstreet 1
1001 1111 Carl Johnsson Bigstreet 1
1001 1111 Carl Johnsson Bigstreet 1
1010 1234 Andrew Wilkinsson Smallstreet 2
1010 1234 Andrew Wilkinsson Smallstreet 2
Wie Sie ich beide PersonId und Employmentid erhalten sehen, aber jetzt habe ich nur eine von jeder (wiederholt die korrekte Anzahl) erhalten, so habe ich nicht alle verschiedenen PersonId und Employmentid in meiner Liste .
Warum?
Was ist mit meinem Beitritt passiert, der die Party abgestürzt ist?
Was SQL-Dialekt/RDBMS? – Dummy00001
Dies ist in MS SQL auf MS SQL Server 2012 geschrieben. –
Haben Sie überprüft, ob eine "Person" kann mehrere Male "beschäftigt" werden? – William