Click here to Skip to main content
15,890,185 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
I have one Union Query for getting result from table. When only first query execute that time this working fine but if in second(union part) also return result that time it will not work. My query like
Select * from (
Select  ROW_NUMBER() OVER(ORDER BY EmpID DESC) as RowNo,
    Emp.EMPID, EMP.FirstName
    From Emp
Union
Select ROW_NUMBER() OVER(ORDER BY EMPID DESC) as RowNo,
    Emp.EMPID, EMP.FirstName
    From Emp Inner Join EMPDetail On Emp.EmpID = EMPDetail.EMPID 
    Where EMPDetail.IsActive=True
    ) as _EmpTable where RowNo between 1 and 20


Please help me for this. I want to add paging using Row number. is there any other solution for this?
Posted

Hi Savalia,

This script will show error message
Ambiguous column name 'EMPID'.

I have corrected your script
SQL
SELECT * FROM (
	SELECT  ROW_NUMBER() OVER(ORDER BY EmpID DESC) as RowNo,Emp.EMPID, EMP.FirstName
	From Emp
UNION
	SELECT ROW_NUMBER() OVER(ORDER BY Emp.EMPID DESC) as RowNo,Emp.EMPID, EMP.FirstName
	FROM Emp Inner Join EMPDetail On Emp.EmpID = EMPDetail.EMPID 
	WHERE EMPDetail.IsActive=True
			) 
AS _EmpTable WHERE RowNo between 1 and 20
 
Share this answer
 
v2
this way,
SQL
Select * from
(
    Select 
    ROW_NUMBER() OVER(ORDER BY EmpID DESC) as RowNo,
    Emp.EMPID, 
    EMP.FirstName
    from 
    (
            Select Emp.EMPID, EMP.FirstName
            From Emp
            Union
            Select Emp.EMPID, EMP.FirstName
            From Emp 
            Inner Join EMPDetail On Emp.EmpID = EMPDetail.EMPID
            Where EMPDetail.IsActive=True
    ) as _EmpTable 
) as a where RowNo between 1 and 20

Happy Coding!
:)
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900