用于获取重复记录并在 Gridview 中显示为一行的 SQL 查询

Posted

技术标签:

【中文标题】用于获取重复记录并在 Gridview 中显示为一行的 SQL 查询【英文标题】:SQL Query for Getting a Duplicate Record and Show it in One Row in Gridview 【发布时间】:2017-04-01 21:33:48 【问题描述】:

所以我只需要在一行中显示重复记录的数据。

请看图片Record

员工有不止一份工作,但我只需要查看员工的 empno、名字、姓氏、实体和位置,因此我只需要一行记录。

我尝试使用SELECT DISTINCT,但它不起作用。

这是我的代码

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

我的代码可能有什么问题?你能给我其他的想法或示例或其他代码吗?

非常感谢。

【问题讨论】:

我没有发现您的查询有任何问题。这个实际查询的输出是什么?为什么会出错? 这个查询的实际输出是我发布的图像。它显示同一员工的两条记录或两行。我只需要一行我得到的相同员工详细信息。 您实际上希望在结果集中包含哪些 。您的DISTINCT提及这些列。我的猜测是,您向我们展示的两条记录没有不同,并且在一列或多列中有所不同(在显示的列中并不相同)。 结果集中我真正想要的列是 Empno、firstname、lastname、entity 和 location。是的,这两条记录在一列中有所不同,即职称。 删除 distinct 关键字并发布查询的实际结果,以便您查看哪些列不相似 【参考方案1】:

当您执行SELECT DISTINCT 时,数据库将返回与所有 列不同的记录。这意味着,如果您想要在 4 列方面不同的记录,但您选择 5,那么您可能会在结果集中获得看似重复的内容。根据您告诉我们的情况,以下查询可能符合您的要求:

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

【讨论】:

以上是关于用于获取重复记录并在 Gridview 中显示为一行的 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章

Windows phone 7 - 在 GridView 中重复显示重复的列

Yii2 DetailView小部件

从返回类型 DataSet 获取输出并将其显示在 Gridview 中

从返回类型DataSet获取输出并将其显示在Gridview中

没有记录时如何在gridview“未找到记录”中显示文本

yii框架里DetailView视图和GridView的区别