2013-03-26 164 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