2013-03-26 163 views
0

我有2个表..我将状态历史记录移动到一个表中,并将其显示在另一个表中..第二个表获取最新状态并显示在Web中outputSQL查询选择最近的记录以及空记录

喜欢我need..but我得到的

needed output

我需要更新的记录与空状态记录一起。我的查询是:

with ctr as 
(
select en.status update,ed.no,row_number() 
over (partition by ed.no order by en.update descending) as [RN], 
ed.[conference date],ed.conference name,ed.region,ed.inquiry, 
ed.attended by,ed.doctor name,ed.hospital,ed.contact no,ed.email, ed.adds, 
CONVERT(VAR CHAR(10),en.[update], 103) as update,ed.closed, 
CONVERT(VAR CHAR(10),ed.[closing date],103) as closing date, 
ed.closed by, ed.revenue, ed.approve status, ed.Enid from inquiries_details ed 
inner join 
inquiries en on ed.Enid = en.Enid 
inner join 
staff_details SD on ed.region = SD.state 
where region = 'Maharashtra' 
) 
select * from ctr where RN = 1 

谁能帮助我

+0

添加更多细节。你提到的是不够的,也不清楚。 – Tirumudi 2013-03-26 05:21:01

+0

如果我有3条记录,我更新了2条记录的状态..我从更新日期获得这两条更新的记录..但我还需要列出剩余的一条未更新的记录 – Affan 2013-03-26 05:52:01

+1

我没有在这里真正理解你的问题。但我猜你的问题是“为什么我没有在第一张桌子上得到10条记录?”。先做一些调试。删除所有where子句并看看。下一个连接。我可以看到你正在使用内部连接。尝试将它们更改为外部连接并查看。 – GayanSanjeewa 2013-03-26 05:53:05

回答

0

可以将下面的查询尝试,可能是问题的内部连接..它改为左联接

with ctr as 
(
select en.status update,ed.no,row_number() 
over (partition by ed.no order by en.update descending) as [RN], 
ed.[conference date],ed.conference name,ed.region,ed.inquiry, 
ed.attended by,ed.doctor name,ed.hospital,ed.contact no,ed.email, ed.adds, 
CONVERT(VAR CHAR(10),en.[update], 103) as update,ed.closed, 
CONVERT(VAR CHAR(10),ed.[closing date],103) as closing date, 
ed.closed by, ed.revenue, ed.approve status, ed.Enid from inquiries_details ed 
left join 
inquiries en on ed.Enid = en.Enid 
left join 
staff_details SD on ed.region = SD.state 
where region = 'Maharashtra' 
) 
select * from ctr where RN = 1