ich für diese SQL-Abfrage einer Software von Drittanbietern bin mit den verschiedenen Einschränkungen, einen eine Zeichenbegrenzung von 1000 Zeichen sein. Ich habe einen Code erstellt, der eine Liste von Kontaktnummern durchsucht, die für einen bestimmten Account registriert sind, und eine speziell für diese Aufgabe erstellte Ansicht erstellt hat. Mein aktuelles Skript (siehe unten) funktioniert, bringt jedoch doppelte Antworten zurück. Ich möchte die Länge des Codes verkürzen und nur für eindeutige Antworten auswählen.die Länge meines SQL-Code Reduzierung
Als Hintergrund das CRM-System dies verknüpft ist, hat mehrere Orte jemand eine Telefonnummer hinterlassen, also muss ich den Code Duplikate entfernen, wenn er die Antwort anzeigt. Der aktuelle Code wird nicht versucht, Duplikate zu entfernen aufgrund der oben genannten Art zu begrenzen, ist es:
SELECT [Contact_Mobile_Phone] AS V, [Contact_Mobile_Phone] AS D
FROM [DatabaseName]
WHERE MAINLKUPID = '{Import.TenantID}' AND [Contact_Mobile_Phone] IS NOT NULL
UNION ALL
SELECT [Contact_Home_Phone] AS V, [Contact_Home_Phone] AS D
FROM [DatabaseName]
WHERE MAINLKUPID = '{Import.TenantID}' AND [Contact_Home_Phone] IS NOT NULL
UNION ALL
SELECT [Contact_Work_Phone] AS V, [Contact_Work_Phone] AS D
FROM [DatabaseName]
WHERE MAINLKUPID = '{Import.TenantID}' AND [Contact_Work_Phone] IS NOT NULL
UNION ALL
SELECT [Group_Home_Phone] AS V, [Group_Home_Phone] AS D
FROM [DatabaseName]
WHERE MAINLKUPID = '{Import.TenantID}' AND [Group_Home_Phone] IS NOT NULL
UNION ALL
SELECT [Group_Mobile_Phone] AS V, [Group_Mobile_Phone] AS D
FROM [DatabaseName]
WHERE MAINLKUPID = '{Import.TenantID}' AND [Group_Mobile_Phone] IS NOT NULL
UNION ALL
SELECT [Contact_Home_Phone] AS V, [Contact_Home_Phone] AS D
FROM [DatabaseName]
WHERE [Group_ID] = '{Script.V1}' AND [Contact_Home_Phone] IS NOT NULL
UNION ALL
SELECT [Contact_Mobile_Phone] AS V, [Contact_Mobile_Phone] AS D
FROM [DatabaseName]
WHERE [Group_ID] = '{Script.V1}' AND [Contact_Mobile_Phone] IS NOT NULL
UNION ALL
SELECT 'Enter other number' AS V, 'Enter other number' AS D
Wie Sie sehen, es ist nicht das eleganteste, was ich codiert haben. Was ich will, es so aussieht, ist etwas ähnlich wie diese:
SELECT DISTINCT ([Contact_Mobile_Phone], [Contact_Home_Phone], [Contact_Work_Phone], [Group_Home_Phone], [Group_Mobile_Phone]) V,
([Contact_Mobile_Phone], [Contact_Home_Phone], [Contact_Work_Phone], [Group_Home_Phone], [Group_Mobile_Phone]) D
FROM [DatabaseName]
WHERE MAINLKUPID = '{Import.TenantID}' AND ([Contact_Mobile_Phone], [Contact_Home_Phone], [Contact_Work_Phone], [Group_Home_Phone], [Group_Mobile_Phone]) IS NOT NULL
AND MAINLKUPID = '{Import.TenantID}' AND ([Contact_Mobile_Phone], [Contact_Home_Phone], [Contact_Work_Phone], [Group_Home_Phone], [Group_Mobile_Phone]) IS NOT NULL
Die Kriterien sind, dass es die gleichen Ergebnisse sowohl in der Spalte V und D. Es muss angezeigt werden muss, nicht durch Null-Daten ziehen, und es Sie müssen nur jede Nummer einmal in jede Spalte eingeben, auch wenn sie ursprünglich aus verschiedenen Spalten stammen. Ich bin mir bewusst, dass die Syntax für meinen idealen Code nicht stimmt, in der Hoffnung, dass jemand mich in die richtige Richtung weisen kann. Danke im Voraus.
die Duplikate ist einfach eine Frage der Veränderung der aus- "Gewerkschaft alle zu Gewerkschaft". –
Ich habe dies mehrmals gelesen und jedes Mal, wenn ich es lese ich bin mehr verwirrt durch das, was Sie eigentlich hier wollen. Aber wie bereits erwähnt @DanBracuk ist das Entfernen der Duplikate einfach. –
Können Sie Beispieldaten hinzufügen und uns die Ausgabe zeigen, die Sie erwarten würden? –