Как я могу устранить дубликаты в gridview? - PullRequest
0 голосов
/ 24 июня 2011

Я получаю данные из трех таблиц для моего требования, поэтому я написал следующий запрос

Я получил правильный результат, но проблема в том, что записи повторяются, в чем проблема в

этот запрос. Я связываю результат запроса с контролем вида сетки. пожалуйста, помогите мне

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 ]

3 голосов
/ 24 июня 2011

Нет соединения между tblcourse tc, tblusereg ur. Таким образом, вы получаете перекрестное соединение, несмотря на IN (который фактически является JOIN)

DISTINCT работает и для всей строки: ни для одного столбца.

Примечание: вы упоминаете dbo.UserCourse дважды, но используете разные имена столбцов courseid и [course-id]

Переписано с СОЕДИНЕНИЯМИ.

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 

Это может решить вашу проблему ...

0 голосов
/ 24 июня 2011

Измените первую часть вашего запроса

select distinct (tc.coursename),

К

select distinct tc.coursename, 

сделать все столбцы distinct не просто tc.coursename

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...