Wie man Eindeutige Werte in SQL Abfrage

Ich habe ein problem in meiner SQL-Abfrage

möchte ich select DISTINCT StudentGroups(SG), aber die Abfrage gibt mir einige repetations

hier ist meine Abfrage

SELECT      DISTINCT(SG.SGID), en.EnrollmentID, CR.Name AS Course, INS.Name as Instructor,
                S.Session, SG.StartTime, SG.EndTime, EN.CreateDate

    FROM        StudentGroups SG inner JOIN Enrollments EN ON SG.SGID = EN.SGID
                JOIN Courses CR ON SG.CourseID = CR.CourseID
                JOIN Class CL ON SG.ClassID = CL.ClassID
                JOIN Instructors INS ON SG.InstructorID = INS.InstructorID
                JOIN Sessions S ON SG.SessionID = S.SessionID

    WHERE       EN.SGID NOT IN ( SELECT SGID FROM Enrollments
                            WHERE StudentID = 45

AKTUALISIERT

Diese Abfrage gibt mir folgende Daten

Wie man Eindeutige Werte in SQL Abfrage

aber ich will nicht wiederholt SGID

  • DISTINCT ist nicht eine Funktion. Es ist ein operator angewendet auf alle die Spalten in der select-Liste.
  • UNTERSCHIEDLICHE arbeiten auf die ganze Zeile: Sie können nicht UNTERSCHIEDLICHE SGID-Werte in der gleichen Ergebnismenge mit anderen Spalten. Es macht keinen Sinn...
  • dann wie bekomme ich eindeutige Datensätze?? @a_horse_with_no_name ,@gbn
  • Einzigartige nach was? Würde es helfen, wenn Sie zeigte uns ein paar Beispieldaten und das erwartete Ergebnis.
  • Was genau erwartest du Ihren Ausgang, hier zu sein? Sie verknüpfen mehrere Tabellen zusammen, so, es sei denn deine Beziehungen zwischen den Tabellen sind alle 1-1, Sie können erwarten, einige Wiederholungen in den resultierenden Datensatz. Wenn Sie könnten ein Beispiel geben, wie Sie möchten, dass Ihre Ausgabe zu sehen, das wäre hilfreich.
  • siehe aktualisierte Frage
  • siehe aktualisierte Frage
  • Sie müssen uns sagen, wie man wählen Sie eine der Zeilen. Wie bestimmen Sie, welche Zeile verworfen werden sollte und welche Sie behalten möchten? Die neuste? Die erste?
  • Sie benötigen die EnrollmentID/CreateDate in Ihrem Ergebnis? Wenn ja, sind Sie gehen zu müssen, um entweder Aggregat-diese Werte und verwenden Sie eine GRUPPE, INDEM Sie auf die übrigen Spalten, oder akzeptieren Sie die Wiederholung des SGID, da gibt es mehrere Einträge in der Registrierungs-für jeden StudentGroup.
  • Der edit zu deiner Frage nicht helfen. Wenn Sie nicht möchten, SGID wiederholt (aber es gibt mehr als eine Zeile für jeden), welche Kriterien sollten entscheiden, welche Zeilen zeigen?

InformationsquelleAutor Ahmad Abbasi | 2013-02-21
Schreibe einen Kommentar