Вернуть строку, используя часть месяца в поле даты - PullRequest
2 голосов
/ 24 апреля 2020

Я пытаюсь создать запрос, который заполняет поле salesPeriod из поля salesDate. Запрос должен вернуть string value на основе части даты salesDate. Условия:

If month is equal to equal to 11, 12, 1, return "Christmas Sales"

If month is equal to 6,7,8 return "Summer sales". Otherwise return return "N/A"

Возможно что-то вроде:

salesPeriod: DatePart("month",[salesDate])) = 11 Or 12 Or 1).... или любое направление?

Ответы [ 2 ]

3 голосов
/ 24 апреля 2020

Вы можете использовать функцию month() и условную логику c. Вот один из методов:

select iif(month(salesDate) in (11, 12, 1), "Christmas Sales",
           iif(month(salesDate) in (6, 7, 8), "Summer sales", "N/A")
          ) as salesPeriod
0 голосов
/ 24 апреля 2020

Я бы также порекомендовал функцию MONTH(), которая в дополнение к другому ответу может быть реализована с помощью оператора CASE.

SQL:

SELECT 
    (CASE
    WHEN MONTH(salesDate) in (11, 12, 1)
        THEN 'Christmas Sales',
    WHEN MONTH(salesDate) in (6, 7, 8)
        THEN 'Summer sales'
    ELSE 
        'N/A'
    END) AS 'Sales Period'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...