J'ai créé une instruction case pour fonctionner dans cet ordre.SQL Server - Combinaison d'un champ de date, d'un caractère littéral et d'une valeur DATEADD dans une instruction case
Déterminez s'il s'agit d'une «escalade prioritaire», «prêt pour le ramassage», «en attente de routage», ELSE une plage de dates.
Ce qui précède fonctionne si j'exclus la partie ELSE
de l'instruction case. Si aucun des autres cas n'est vrai, alors j'ai besoin de mon autre déclaration pour produire une date d'expédition plus 2 jours ajoutés à la date d'expédition pour donner une plage de dates pour le moment où un colis sera expédié. à savoir 02/15/2016 – 02/17/2016
Select
Case
When datediff (day, sl.[Shipment Date], sl.[Priority Escalation Date]) < 0 then 'Priority Escalation'
When sh.[On Hold] = 'RFP' then 'Ready for Pickup'
When sh.[On Hold] = 'WFR' then 'Waiting for Routing'
Else sl.[Shipment date] + “ – “ + & DateAdd("d", 2, sl.[Shipment Date])
End as 'Expected Value'
Voici ce que les données devraient ressembler à
Expected Value
02/24/2016 - 02/26/2016
02/24/2016 - 02/26/2016
02/24/2016 - 02/26/2016
02/24/2016 - 02/26/2016
Waiting for Routing
Waiting for Routing
Priority Escalation
Ready for Pickup
Ready for Pickup
Priority Escalation
Priority Escalation
Priority Escalation
Ready for Pickup
Où est vos données d'échantillon? –