Reputation: 293
I get wrong error row number when i use Multiple Select
First Query gets right row number
SELECT num
FROM (SELECT ItemId, CommentId,ROW_NUMBER() OVER (ORDER BY CreatedDate desc) AS num
From ItemComments
where ItemId = 10
) AS numbered
WHERE numbered.CommentId =100
Scond Query gets right row number
SELECT num
FROM (SELECT ItemId, CommentId, ROW_NUMBER() OVER(ORDER BY CreatedDate desc) AS num
From ItemComments
where ItemId = 20
) AS numbered
WHERE numbered.CommentId =200
When i tried to use both above values in one query i got wrong row number
Third Query which gets wrong row number
SELECT num
FROM (SELECT ItemId, CommentId, ROW_NUMBER() OVER(ORDER BY createddate desc) AS num
From ItemComments
where ItemId in(20,10)
) AS numbered
WHERE numbered.CommentId in (200, 100)
Please help me to get the right row number in Multiple Select
Thank you
Upvotes: 1
Views: 369
Reputation: 1270653
You just need partition by
:
SELECT num
FROM (SELECT ItemId, CommentId,
ROW_NUMBER() OVER (PARTITION BY ItemId ORDER BY createddate desc) AS num
From ItemComments
where ItemId in (20, 10)
) numbered
WHERE numbered.CommentId in (200, 100)
Upvotes: 2