Я пытаюсь найти нижнюю дату из двух полей.Поле также может быть NULL, поэтому выберите не NULL или, если оба значения NULL, то из этого заполняется 'Some Error'
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,
И вот так (я помещаю это во временную таблицу вместе с другими полями)
(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
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
Любые указатели будут оченьвысоко ценится