sql-server - 如果两者都为空,则返回两个日期或特定文本中的较低者
问题描述
我试图从两个字段中找到较低的日期。该字段也可以为 NULL,因此请选择非 NULL,或者如果两者都为 NULL,则选择“某些错误”
POdate 从中填充(我将它与其他字段一起放在临时表中)
(SELECT MIN(PD.ReceiptDate)
FROM Structure.Parts
INNER JOIN Purchase.PurchaseOrderDetails PD ON pd.PartID = structure.Parts.PartID
INNER JOIN Purchase.PurchaseOrders PO
ON PD.PurchaseOrderNumber = PO.PurchaseOrderNumber
WHERE Structure.Parts.Partnumber = sp.PartNumber AND (PO.PurchaseOrderStatusCode < 4) --4 Complete 5 --Cancelled
AND (PD.ReceiptStatusID IN (1,2) )) AS POdate,
AND WOdate 像这样(我把它和其他字段一起放在临时表中)
(SELECT MIN(wt.CompletionDate)
FROM Structure.Parts
INNER JOIN Production.WorksOrder as wo
ON wo.PartID = Structure.Parts.PartID
INNER JOIN Production.WorksOrderTransfers wt ON wt.WorksOrderNumber = wo.WorksOrderNumber
WHERE Structure.Parts.Partnumber = sp.PartNumber AND wt.WorksOrderStatusCode < 4
AND (wt.BatchQuantity - ISNULL (wt.QuantityStored,0)) > 0 )
AS WOdate,
我的案例陈述在这里
CASE
WHEN POdate IS NULL THEN CAST(WOdate AS varchar (25))
WHEN WOdate IS NULL THEN CAST (POdate AS varchar (25))
WHEN POdate > WOdate THEN CAST (WOdate AS varchar (25))
WHEN POdate < WOdate THEN CAST (POdate AS varchar (25))
ELSE 'No Planned Stock'
END AS StockDueIn
任何指针将不胜感激
解决方案
这应该涵盖所有可能的情况
CASE
WHEN POdate IS NULL AND WOdate IS NULL
THEN 'No Planned Stock'
--If desired output for BOTH EQUAL case is 'No Planned Stock'
--replace the above WHEN with below one
--WHEN ISNULL(POdate, '99990101') = ISNULL(WOdate, '99990101')
--THEN 'No Planned Stock'
WHEN ISNULL(POdate, '99990101') > ISNULL(WOdate, '99990101')
THEN CAST (WOdate AS varchar (25))
WHEN ISNULL(POdate, '99990101') < ISNULL(WOdate, '99990101')
THEN CAST (POdate AS varchar (25))
END AS StockDueIn
推荐阅读
- next.js - Nextjs中“加载初始道具取消”的原因是什么?
- python - 将不属于模型的元素添加到 Django 管理页面
- c++ - 为 [-1, 1] 中的 c 计算 sqrt((b²*c²) / (1-c²)) 的数值稳定方法
- javascript - javascript是否可以在异步循环中存在可变并发问题
- ubuntu - 如何在没有专用监视器的 Ubuntu 机器上设置硬件加速 VNC
- reporting-services - 如何授予用户对文件夹的 SSRS 浏览器权限而不授予他们对根目录的访问权限
- mysql - 使用 JOIN 合并 SQL 联合
- c++ - 在带有附加条件的图中找到最小加权路径
- html - 将鼠标悬停在单词上时在框中显示文本
- python - Fast.ai Course 2020: HTTPError: 401 Client Error: PermissionDenied for url