
[英]SQL - Select * from latest except unless = null then latest non null
[英]Select a certain item unless is null in SQL Server
我试图拉某个项目,除非第一个项目为空。
SELECT
FM.FileNumber
,FM.ClientsFileNumber AS 'Clients File Number'
,FM.FileID AS FileID
,S.Name AS Status
,FA.ReceivedDate AS 'Contract Fr Seller' --550, 238
,FA1.ReceivedDate AS 'Deed To Seller' --266, 561
,FA2.ReceivedDate AS 'Deed Fr Seller' --40, 629
,FA3.ReceivedDate AS 'HUDTo Seller' --269, 587
,FA4.ReceivedDate AS 'HUDFr Seller' --274, 637
,FA5.ReceivedDate AS 'Sent HUD to Buyer' --268
,FA6.ReceivedDate AS 'Receive Buyer Signed Docs' --273
,FA7.ReceivedDate AS 'Receive Buyer Funds' --119
,FA8.ReceivedDate AS 'Closing Completed' --272
,FA9.ReceivedDate AS 'FC Deed' --344
-- ,n.Body as Notes
FROM
FileMain FM
LEFT OUTER JOIN
FileActions FA ON FA.FileID = FM.FileID AND FA.ActionDefID IN (238,550)
AND FA.Live = 1 AND FA.ReceiveCoordinatorTypeID = 2
--AND FA.ReceivedDate > '2013-03-01'
AND FA.ReceivedDate IS NOT NULL
AND FA.ActionDefID IS NOT NULL
基本上我试图让它选择FA.ActioNDefID = 230
除非那是NULL
,然后我希望它拉动FA.ActionDefID = 550
,并且对于其他多个选择也是如此。
下面是我目前得到的,现在后者总是238,除非它是null,基本上我只想得到1个文件号,如果238为空,则只拉550。
我建议像这样重写你的查询,应该更具可读性
SELECT
...
, [Contract Fr Seller] = (SELECT TOP 1 FA.ReceivedDate
FROM FileActions FA
WHERE FA.FileID = FM.FileID
AND FA.ActionDefID IN (238,550)
AND FA.Live = 1
AND FA.ReceiveCoordinatorTypeID = 2
ORDER BY FA.ActionDefID -- This will make sure 238 on the top if exist
)
FROM FileMain FM
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.