Ich habe eine Tabelle, die Kontakte zu Unternehmen verknüpft. Wenn mehr als ein Kontakt hinzugefügt wird, gibt es eine Option zum Festlegen eines "Primären" oder "Sekundären" Kontakts. Wenn jedoch Personen einen Kontakt hinzugefügt haben, haben sie diese Funktion nicht verwendet. Das Programm wurde so geändert, dass es automatisch den ersten Kontakt markiert, der als primäres Unternehmen hinzugefügt wurde, aber die bereits eingegebenen Daten nicht repariert.SQL: Aktualisieren von Zeilen, die basierend auf einer Spalte eindeutig sind
Ich möchte die Tabelle abfragen und sagen, wenn es nur einen Datensatz pro CompanyID gibt, setzen Sie den PrimaryContact auf True, aber ich kann nicht herausfinden, wie dies zu tun ist. Für jede Firma, die mehr als einen Kontakt hat, möchte ich nichts machen. Zum Beispiel:
CompanyID ContactID PrimaryContact
1 285 0
2 375 0
3 761 0
4 1744 0
4 2301 0
6 335 0
6 4987 0
9 809 0
9 2119 0
10 99 0
11 99 0
Im obigen Beispiel CompanyID 4, 6 und 9 haben mehrere Einträge, damit ich diese nicht berühren will. Aber 1, 2, 3, 10 und 11 haben einzelne Einträge, also möchte ich für diese Zeilen PrimaryContact auf 1 setzen.
Wie kann das gemacht werden? diese
Meine vorherige Abfrage falsch war, versuchen Sie diese Abfrage Update Kontakte eingestellt c1 PrimaryContact = if ((select count (1) von den Kontakten c2 wo c2.CompanyID = c1.CompanyID Gruppe von c2.CompanyID) > 1, 0, 1) –