- 14, May 2024
- #1
Я пытаюсь извлечь данные из базы данных POS, и у меня есть следующий код:
SELECT DATE_FORMAT(DATE_ADD(DATE(receipts.datenew - INTERVAL (5*60 + 30) МИНУТЫ), INTERVAL (5*60 + 30) МИНУТЫ), '%Y-%m-%d') AS интервал_start,
CONVERT(EXTRACTVALUE(PRODUCTS.ATTRIBUTES, '/properties//entry[@key=\"maincat\"]') ИСПОЛЬЗОВАНИЕ UTF8) КАК MAINCAT,
КРУГЛ(СУММА(БИЛЕТЫ.ЦЕНА * БИЛЕТЫ.ЕДИНЫ), -3) КАК ДНЕВНЫЕ ПРОДАЖИ
ИЗ БИЛЕТОВ, БИЛЕТОВ, ЧЕКОВ, ТОВАРОВ
ГДЕ TICKETLINES.PRODUCT = PRODUCTS.ID
И TICKETLINES.TICKET = TICKETS.ID
И БИЛЕТЫ.ИД = ЧЕКИ.ИД.
И TICKETLINES.PRODUCT НЕ НУЛЕВЫЙ
И (receipts.datenew >= DATE_SUB(NOW(), ИНТЕРВАЛ 3 МЕСЯЦА) И квитанции.person > 0)
ГРУППИРОВКА ПО ДАТЕ(receipts.datenew - ИНТЕРВАЛ (5*60 + 30) МИНУТЫ), MAICAT
Упорядочить по интервалу_начала, MAICAT
который производит:
интервал_start МЕЙНКАТ ДЕНЬ ПРОДАЖ
2016-12-31 Напиток 45108000
2016-12-31 Еда 49791000
2016-12-31 Прочее 109000
2017-01-01 Напиток 14226000
2017-01-01 Еда 27425000
2017-01-01 Прочее 36000
2017-01-02 Напиток 20400000
2017-01-02 Еда 25648000
2017-01-02 Прочее 109000
Проблема в том, что мне это нужно в таком формате:
интервал_start Напиток Еда
2016-12-31 45108000 36000
2016-12-31 49791000 20400000
2016-12-31 109000 25648000
2017-01-01 27425000 109000
2017-01-01 14226000 49791000
Я считаю, что для этого мне нужно использовать подзапрос, но я не могу заставить его работать, любые советы приветствуются.
SELECT DATE_FORMAT(DATE_ADD(DATE(receipts.datenew - INTERVAL (5*60 + 30) МИНУТЫ), INTERVAL (5*60 + 30) МИНУТЫ), '%Y-%m-%d') AS интервал_start,
CONVERT(EXTRACTVALUE(PRODUCTS.ATTRIBUTES, '/properties//entry[@key=\"maincat\"]') ИСПОЛЬЗОВАНИЕ UTF8) КАК MAINCAT,
КРУГЛ(СУММА(БИЛЕТЫ.ЦЕНА * БИЛЕТЫ.ЕДИНЫ), -3) КАК ДНЕВНЫЕ ПРОДАЖИ
ИЗ БИЛЕТОВ, БИЛЕТОВ, ЧЕКОВ, ТОВАРОВ
ГДЕ TICKETLINES.PRODUCT = PRODUCTS.ID
И TICKETLINES.TICKET = TICKETS.ID
И БИЛЕТЫ.ИД = ЧЕКИ.ИД.
И TICKETLINES.PRODUCT НЕ НУЛЕВЫЙ
И (receipts.datenew >= DATE_SUB(NOW(), ИНТЕРВАЛ 3 МЕСЯЦА) И квитанции.person > 0)
ГРУППИРОВКА ПО ДАТЕ(receipts.datenew - ИНТЕРВАЛ (5*60 + 30) МИНУТЫ), MAICAT
Упорядочить по интервалу_начала, MAICAT
который производит:
интервал_start МЕЙНКАТ ДЕНЬ ПРОДАЖ
2016-12-31 Напиток 45108000
2016-12-31 Еда 49791000
2016-12-31 Прочее 109000
2017-01-01 Напиток 14226000
2017-01-01 Еда 27425000
2017-01-01 Прочее 36000
2017-01-02 Напиток 20400000
2017-01-02 Еда 25648000
2017-01-02 Прочее 109000
Проблема в том, что мне это нужно в таком формате:
интервал_start Напиток Еда
2016-12-31 45108000 36000
2016-12-31 49791000 20400000
2016-12-31 109000 25648000
2017-01-01 27425000 109000
2017-01-01 14226000 49791000
Я считаю, что для этого мне нужно использовать подзапрос, но я не могу заставить его работать, любые советы приветствуются.