SELECT e.Code,e.OnlineSeq,(SELECT CASE WHEN a IS NULL THEN '2010-01-18' ELSE a END FROM
(SELECT TOP 1 d.SentOn AS a FROM sn_tx_dat d WHERE d.XType<>'D' AND (d.WorkType IN('R','J','U','Y')) AND d.SpecialWork<>'Y'
AND d.AccountDate='2010-01-18' AND d.ServiceStatus='O' AND d.Company=e.Company AND d.WaiterCode=e.Code ORDER BY a DESC) t ) AS LastWorkTime,(SELECT CASE WHEN UpdatedOn IS NULL THEN '2010-01-18' ELSE UpdatedOn END FROM
(SELECT TOP 1 d.UpdatedOn FROM sn_reject d WHERE d.Company=e.Company
AND d.AccountDate='2010-01-18' AND d.ReplacedBy=e.Code ORDER BY UpdatedOn DESC) x ) AS LastSentTime,(SELECT CASE WHEN c IS NULL THEN '2010-01-18' ELSE c END FROM
(SELECT TOP 1 d.SentOn AS c FROM sn_tx_dat d WHERE d.XType='D' AND (d.WorkType IN('R','J','U','Y')) AND d.SpecialWork<>'Y'
AND d.AccountDate='2010-01-18' AND d.Company=e.Company AND d.WaiterCode=e.Code ORDER BY c DESC) w ) AS LastCancelTime FROM employee e
========
上述语句中, LastSentTime 返回的值的确是NULL, 但按理是NULL的应返回'2010-01-18' 才是啊.
请教高手: 为何得不到想要的 '2010-01-18' ???
(SELECT TOP 1 d.SentOn AS a FROM sn_tx_dat d WHERE d.XType<>'D' AND (d.WorkType IN('R','J','U','Y')) AND d.SpecialWork<>'Y'
AND d.AccountDate='2010-01-18' AND d.ServiceStatus='O' AND d.Company=e.Company AND d.WaiterCode=e.Code ORDER BY a DESC) t ) AS LastWorkTime,(SELECT CASE WHEN UpdatedOn IS NULL THEN '2010-01-18' ELSE UpdatedOn END FROM
(SELECT TOP 1 d.UpdatedOn FROM sn_reject d WHERE d.Company=e.Company
AND d.AccountDate='2010-01-18' AND d.ReplacedBy=e.Code ORDER BY UpdatedOn DESC) x ) AS LastSentTime,(SELECT CASE WHEN c IS NULL THEN '2010-01-18' ELSE c END FROM
(SELECT TOP 1 d.SentOn AS c FROM sn_tx_dat d WHERE d.XType='D' AND (d.WorkType IN('R','J','U','Y')) AND d.SpecialWork<>'Y'
AND d.AccountDate='2010-01-18' AND d.Company=e.Company AND d.WaiterCode=e.Code ORDER BY c DESC) w ) AS LastCancelTime FROM employee e
========
上述语句中, LastSentTime 返回的值的确是NULL, 但按理是NULL的应返回'2010-01-18' 才是啊.
请教高手: 为何得不到想要的 '2010-01-18' ???
改为:
SELECT ISNULL(c,'2010-01-18') AS C FROM
SELECT CASE WHEN isnull(a,'')='' THEN '2010-01-18' ELSE a END
--换成
SELECT ISNULL(UpdatedOn,'2010-01-18') FROM
--看看还有问题不?
SELECT TOP 1 d.UpdatedOn FROM sn_reject d WHERE d.Company=e.Company
AND d.AccountDate='2010-01-18' AND d.ReplacedBy=e.Code ORDER BY UpdatedOn DESC
有返回值???
SELECT CASE WHEN c IS NULL THEN '2010-01-18' ELSE c END FROM
这个测试没有问题啊