I have this query
x
select
x1.name, x1.owner,
(Select dbo.GetTopEmployerName(x1.unit)),
X2.searchName, x4.code,x6.status
From
dbo.profile X1
Join
dbo.profilevalues x3 on X1.profileId == x3.profileKey
Left outer join
dbo.profilecontact X2 on x1.unit = X2.ctId
Join
dbo.accessright x4 on x3.accessrightsId == x4.accessrightId
Left outer join
dbo.profilecontact x5 on x1.owner = x5.contactId
Left outer join
dbo.status x6 on x1.statusId = x6.statusId
Where
((X4.accessRightid in (200,300,400);
))
Here I need to compare the result of function i.e dbo.GetTopEmployerName()
with x4.code
.
I need to check if they are not same.
Advertisement
Answer
Wrap your query up in a derived table:
select name, owner, TopEmployerName, searchName, code, status
from
(
select
x1.name, x1.owner,
(Select dbo.GetTopEmployerName(x1.unit)) TopEmployerName,
X2.searchName, x4.code, x6.status
From
dbo.profile X1
Join
dbo.profilevalues x3 on X1.profileId == x3.profileKey
Left outer join
dbo.profilecontact X2 on x1.unit = X2.ctId
Join
dbo.accessright x4 on x3.accessrightsId == x4.accessrightId
Left outer join
dbo.profilecontact x5 on x1.owner = x5.contactId
Left outer join
dbo.status x6 on x1.statusId = x6.statusId
Where
X4.accessRightid in (200,300,400)
) dt
where TopEmployerName = code