如何消除gridview中的重复?

时间:2011-06-24 07:53:00

标签: sql duplicates

我正在从三个表中检索数据以满足我的要求,因此我编写了以下查询

我得到了正确的结果,但问题是记录重复了

中的问题

那个查询。我是查询绑定到网格视图控件的结果。请帮帮我

SELECT DISTINCT (tc.coursename), ur.username, uc. DATE, 'Paid' AS Status
  FROM tblcourse tc, tblusereg ur, dbo.UserCourse uc
 WHERE tc.courseid IN (SELECT ur1.courseid
                         FROM dbo.UserCourse ur1
                        WHERE ur1.userid = @userid)
   AND ur.userid = @userid
   AND uc. DATE IS NOT NULL
   AND ur.course - id = uc.course - id

2 个答案:

答案 0 :(得分:3)

tblcourse tc,tblusereg ur之间没有加入。所以你得到一个交叉连接,尽管IN(实际上是一个JOIN)

DISTINCT也适用于整行:不是一列。

注意:你提到了两次dbo.UserCourse但是使用了不同的列名和courseid [course-id]

用JOIN重写。

select distinct
    tc.coursename, ur.username, uc.[date], 'Paid' as [Status] 
from
    dbo.tblcourse tc
    JOIN
    dbo.tblusereg ur ON tc.courseid = ur.[course-id]
    JOIN
    dbo.UserCourse uc ON ur.[course-id] = uc.[course-id]
where
    ur.userid=@userid 
    and 
    uc.[date] is not null 

可以解决您的问题......

答案 1 :(得分:0)

更改查询的第一部分

select distinct (tc.coursename),

select distinct tc.coursename, 

使所有列distinct不仅仅是tc.coursename