#sql #sql-server
#sql #sql-сервер
Вопрос:
Я пытаюсь запросить таблицу, в которой есть поле даты (в YYYYMM
) и два поля прогнозов продаж, но я хочу запросить ее таким образом, чтобы я мог запрашивать два разных диапазона дат в отдельных столбцах, но включать их в один и тот же результат
Таблица называется SalesTable
Имена столбцов: CCYYMM
(поле даты), FORECAST 1
(числа), FORECAST 2
(числа)
Диапазон полей даты от 201801
до 202412
Я хочу создать запрос, чтобы получить все значения продаж от FORECAST 1
от 201801
202006
до FORECAST 2
и все значения продаж для 202008
от 202112
до, возможно ли это сделать в одном запросе?
Комментарии:
1. Пожалуйста, предоставьте образцы данных и желаемые результаты.
2. Содержит ли столбец CCYYMM уникальные значения?
Ответ №1:
вы можете использовать РЕГИСТР для разделения итогов с помощью CCYYMM
select sum(case when ccyymm between 201801 and 202006 then FORECAST1 end) as FORCAST1
, sum(case when ccyymm between 202008 and 202112 then FORECAST2 end) as FORCAST2
from SalesTable
Ответ №2:
Вы можете использовать UNION ALL
для объединения:
SELECT CCYYMM , FORECAST1
FROM SalesTable
WHERE CCYYMM BETWEEN x AND y
UNION ALL
SELECT CCYYMM , FORECAST2
FROM SalesTable
WHERE CCYYMM BETWEEN a AND b
Комментарии:
1. Это возвращает только столбец FORECAST1, столбец FORECAST2 отсутствует
2. Нет, это не так… посмотрите на строку 5