Помогите с ПОДЗАПРОСОМ

  • Автор темы S-zychkova
  • 42
  • Обновлено
  • 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

Я считаю, что для этого мне нужно использовать подзапрос, но я не могу заставить его работать, любые советы приветствуются.

S-zychkova


Рег
12 Aug, 2013

Тем
1

Постов
3

Баллов
13
  • 10, Jun 2024
  • #2
Есть ли у вас в таблице базы данных отдельные поля для еды и напитков? В противном случае вы не сможете получить отдельные доходы.

(Подзапросы не могут создавать данные, которые вы не сохранили.) Если да, просто разделите запрос поля «MAINCAT» на 2 поля — FOOD и DRINK.

Если вы этого не сделаете, вам придется добавить поле в таблицу, а затем начать хранить ЕДУ и НАПИТКИ как отдельные элементы.
 

xpert1986


Рег
10 Jul, 2014

Тем
0

Постов
2

Баллов
2
Тем
49554
Комментарии
57426
Опыт
552966

Интересно