Ich bin ein wenig verwirrt darüber, warum diese beiden SQL-Konstrukte nicht das gleiche Ergebnis liefern.sql join -vs- where-Klausel erzeugt nicht das gleiche Ergebnis?
SQL # 1 return 2 identische Datensätze (dups), wenn nur einer der Mängel-Tabelle vorhanden ist ... siehe nächste SQL
SELECT *
FROM Defects d
JOIN StatusCode C ON C.CodeName = d.Status AND c.scid = 10
WHERE d.AssignedTo='me'
SQL # 2 Wiederholungen 1 Datensatz - das ist richtige Ursache lookign bei Rohdaten gibt es einen Mangel für ‚me‘ nicht geschlossen
SELECT *
FROM Defects d
WHERE d.AssignedTo='me' AND Status <> 'closed'
alles, was ich tue, ist stattdessen ein negativ mit dem Status nicht in etwas, positiv über die Aufzeichnungen verbinden mit, die jeden Wert Defekt anderen Status haben als geschlossen
Warum passiert das und wie kann ich meine Auswahl mit der Verknüpfung ändern, um das Ergebnis zu korrigieren? Ich habe versucht, DISTINCT
mit aber es funktioniert nicht mit:
Der Datentyp Ntext nicht als DISTINCT ausgewählt werden kann, weil es nicht vergleichbar ist.
gibt es keine Statuscodes, die 'geschlossen' werden, nicht ein einziger:
select * from StatusCode where scid = 10
Ergebnisse in diesen Werten: Fest New Bereit Retest fehlgeschlagen Retest Qualität Follow Up Erneut öffnen Abgelehnt Consumer In Coding öffnen Feste New Bereit für Retest fehlgeschlagen Retest Qualität Follow Up Consumer Abgelehnt wieder öffnen Öffnen durch das In Coding
Ich sehe, Sie haben ntext Felder in Ihrer Datenbank. Sie müssen anfangen, diese mit nvarchar (max) zu ersetzen, da ntext veraltet ist und nicht in der nächsten Version von SQL Server nach 2008 sein wird. – HLGEM