2016-11-18 2 views
0

So muss ich Daten mit doppeltem Datensatz nur in einer Zeile anzeigen.SQL-Abfrage für das Erhalten eines doppelten Datensatzes und das Anzeigen in einer Zeile in Gridview

Bitte beachten Sie das Bild Record

Der Mitarbeiter mehr als einen Job hat, aber ich brauche nur die amployees sehen EmpNo, Vorname, Nachname, enity und Lage so dass ich nur eine Zeile eines Datensatzes benötigen.

Ich versuchte mit der SELECT DISTINCT, aber es funktioniert nicht.

Hier ist meine Codes

Protected Sub BindUsersGrid() 

    Dim Con As New SqlConnection 
    Con = getConn() 

    Dim ds As DataSet = GetRecord("SELECT DISTINCT MASTERID, USERID, EMPNO, LASTNAME, FIRSTNAME, ENTITY, LOCATION, EMAIL, BDATE, SEX, CONTACT_NO, IS_RESIGNED, LOCALNAME, " & _ 
            "REGION, COUNTRY " & _ 
            "FROM EMP_MASTERTBL " & _ 
            "ORDER BY LASTNAME, FIRSTNAME, MASTERID") 

    Me.myDataTable = ds.Tables(0) 
    Me.gvUsers.DataSource = Me.myDataTable 
    Me.gvUsers.DataBind() 
    Session("gvData") = myDataTable 

End Sub 

Was ist das Problem meiner Codes sein könnte? Kannst du mir eine andere Idee, ein Muster oder einen anderen Code dafür geben?

Vielen Dank.

+0

Ich sehe nichts falsch mit Ihrer Abfrage. Was ist die Ausgabe von dieser tatsächlichen Abfrage und warum ist es falsch? –

+0

Die tatsächliche Ausgabe dieser Abfrage ist das Bild, das ich gepostet habe. Es zeigt zwei Datensätze oder zwei Zeilen desselben Mitarbeiters. Ich brauche nur eine Zeile der gleichen Mitarbeiterdetails, die ich bekomme. – chobowski

+0

Welche _columns_ möchten Sie eigentlich in der Ergebnismenge haben? Ihr 'DISTINCT' sollte nur diese Spalten erwähnen. Meine Vermutung ist, dass die zwei Aufzeichnungen, die Sie uns gezeigt haben, _nicht_ sind und sich in einer oder mehreren Spalten unterscheiden (gedacht nicht in denen, die gezeigt werden). –

Antwort

1

Wenn Sie eine SELECT DISTINCT tun, wird die Datenbank Datensätze zurückgeben, die in Bezug auf alle die Spalten unterscheiden. Das bedeutet, wenn Sie Datensätze haben möchten, die in Bezug auf 4 Spalten unterschiedlich sind, aber Sie 5 auswählen, könnten Sie in Ihrer Ergebnismenge doppelte Ergebnisse erhalten. Von dem, was Sie uns gesagt haben, könnte die folgende Abfrage in der von Ihnen gewünschten Richtung sein:

SELECT DISTINCT EMPNO, LASTNAME, FIRSTNAME, ENTITY, LOCATION 
FROM EMP_MASTERTBL 
ORDER BY LASTNAME, FIRSTNAME 
Verwandte Themen