Friday, 2 September 2011

Distinct with Row_number() in sql

create table StudentAttendance(AttendId int,AttendDate datetime,BatchName nvarchar(50),FacultyName nvarchar(50))
insert into StudentAttendance values(1,'08/03/2011','DotNet Batch','Rajesh Rolen')
insert into StudentAttendance values(2,'09/03/2011','DotNet Batch','Rajesh Rolen')
insert into StudentAttendance values(3,'10/03/2011','DotNet Batch','Rajesh Rolen')

create table StudentAttendanceTrans(AttTransId int,AttendId int,StudentId int)
insert into  StudentAttendanceTrans values (1,1,1001)
insert into  StudentAttendanceTrans values (2,1,1002)
insert into  StudentAttendanceTrans values (3,1,1003)
insert into  StudentAttendanceTrans values (4,2,1001)
insert into  StudentAttendanceTrans values (5,2,1002)
insert into  StudentAttendanceTrans values (6,2,1003)
insert into  StudentAttendanceTrans values (7,3,1001)
insert into  StudentAttendanceTrans values (8,3,1002)
insert into  StudentAttendanceTrans values (9,3,1003)

select distinct row_number() over(order by P.AttendDate )as Sno,
    P.AttendId,P.AttendDate,P.BatchName,P.FacultyName from StudentAttendance P
    inner join StudentAttendanceTrans T on T.AttendId = P.AttendId
SNo Id   Date              BatchName      Faculty Name
1      1    2011-08-03    DotNet Batch    Rajesh Rolen
2      1    2011-08-03    DotNet Batch    Rajesh Rolen
3      1    2011-08-03    DotNet Batch    Rajesh Rolen
4      2    2011-09-03    DotNet Batch    Rajesh Rolen
5      2    2011-09-03    DotNet Batch    Rajesh Rolen
6      2    2011-09-03    DotNet Batch    Rajesh Rolen
7      3    2011-10-03    DotNet Batch    Rajesh Rolen
8      3    2011-10-03    DotNet Batch    Rajesh Rolen
9      3    2011-10-03    DotNet Batch    Rajesh Rolen
Note : here distinct is not working fine.

select distinct row_number() over(order by P.AttendDate )as Sno,
    P.AttendId,P.AttendDate,P.BatchName,P.FacultyName from StudentAttendance P
    inner join StudentAttendanceTrans T on T.AttendId = P.AttendId
    group by P.AttendId,P.AttendDate,P.BatchName,P.FacultyName
SNo Id   Date              BatchName      Faculty Name

1      1    2011-08-03    DotNet Batch    Rajesh Rolen
2      2    2011-09-03    DotNet Batch    Rajesh Rolen
3      3    2011-10-03    DotNet Batch    Rajesh Rolen
Note : here distinct is working fine.

No comments:

Post a Comment