У меня есть таблица, которая дает единицу продаж разных товаров в день. Я хочу суммировать продажи для ряда пользовательских (фактически произвольных, без возможности указания непосредственно из данных) периодов.Раздел по заданным пользователем значениям sql
Я пытаюсь сделать это, создав поле, в котором указывается, находится ли какая-либо дата периода, а затем я могу группировать это. Однако мой код дает мне ошибку «ORA-00923: ключевое слово FROM не найдено, где ожидалось».
МОЙ КОД:
select
SUM(UNIT_SALES),
PERIOD =
CASE
WHEN DAY_DATE >= TO_DATE('04/07/2013', 'DD/MM/YYYY') AND DAY_DATE <= TO_DATE('26/09/2013', 'DD/MM/YYYY') THEN 'Start of Period of pre_activity'
WHEN DAY_DATE >= TO_DATE('27/09/2013', 'DD/MM/YYYY') AND DAY_DATE <= TO_DATE('01/04/2014', 'DD/MM/YYYY') THEN 'Start of Period of pre_activity'
WHEN DAY_DATE >= TO_DATE('14/05/2014', 'DD/MM/YYYY') AND DAY_DATE <= TO_DATE('21/09/2014', 'DD/MM/YYYY') THEN 'Start of Period of pre_activity'
ELSE 'NO PERIOD ASSIGNED'
END
FROM MY_SALES_DAILY
GROUP BY PERIOD
ORDER BY PERIOD
Как я могу достичь этой суммы на определенные пользователем периоды?
Большое спасибо за вашу помощь. При использовании вашего кода я получаю сообщение об ошибке «INVALID SQL STATEMENT». Однако я использую TOAD, который я нашел, немного отличается от того, что я использовал ранее. Могу ли я спросить, что вы используете для своего кода? – branches
Я использую TSQL в этом примере. Какие СУБД вы используете? Oracle, mysql,? – JNevill
Здравствуйте, извините, что оказалось, что это не проблема. Мне нужно было привести дело в группу, теперь оно работает. Я отредактировал ответ. Спасибо за вашу помощь. – branches