Мне нужно получить конкретный вывод для столбца в наборе отчетов на основе погоды или даты, когда Uf_RequestedShipDate просрочен на 60 или более дней при запуске отчета.
До сих пор я пробовал Cast и Convert, раньше я просто пытался сравнить вывод DATEDIFF с 60, но я продолжаю получать ту же ошибку.
, CASE
WHEN co.Uf_RequestedShipDate = NULL THEN NULL
WHEN CONVERT(INT, DATEDIFF(day, co.Uf_RequestedShipDate, GETDATE())) <= CAST(60 AS INT) /*DATEADD(DAY, -60, @Today)*/ THEN co.Uf_RequestedShipDate + '****'
WHEN CONVERT(INT, DATEDIFF(day, co.Uf_RequestedShipDate, GETDATE())) > CAST(60 AS INT) /*DATEADD(DAY, -60, @Today)*/ THEN 'Pending ****'
END AS 'RequestedShipDate'
Мне просто нужно вывести дату с **** или в ожидании с ****, если в базе данных есть значение, если прошло более 60 дней после этой даты, оно будет в ожидании, а если нет, то оно все равно должно отображаться Дата.
Примеры: У меня есть одна запись с датой 2019-03-30 в этом столбце, она отправит 2019-03-30 **** в отчет.
Если бы был один, у которого было бы 2018-10-31, то в отчете было бы просто написано «Ожидание ****».
Если бы для строки он был нулевым, то он все равно был бы просто нулевым, а не **** для отчета.
Я помещаю пример в резюме, чтобы лучше объяснить, что я пытаюсь сделать.
Какая у вас ошибка? Какой тип данных у Uf_RequestedShipDate?
Сообщение 241, уровень 16, состояние 1, процедура EPS_Rpt_DealerSalesBacklogSp, строка 44 Ошибка преобразования при преобразовании даты и/или времени из символьной строки.
Вы не можете сравнивать NULL
с =
, вы должны использовать IS NULL
.
Вам не нужно преобразовывать результат DATEDIFF()
в целое число, потому что оно целое, как и 60
.
Последнее условие: > 60
нужно просто проверить с ELSE
частью в CASE
утверждении.
Попробуй это:
CASE
WHEN co.Uf_RequestedShipDate IS NULL THEN NULL
WHEN DATEDIFF(day, co.Uf_RequestedShipDate, GETDATE()) <= 60
THEN CONVERT(VARCHAR, co.Uf_RequestedShipDate, 120) + '****'
ELSE 'Pending ****'
END AS RequestedShipDate
Это сделало это, я ценю помощь.
Примеры данных и желаемые результаты действительно помогут.