katik
Новичок
Подскажите, пожалуйста, как правильно построить запрос
Нужно выбрать MIN(первый ролик), MAX(последний ролик), SUM(суммарное время в эфире) в соответствии с группировкой l.PRODUCT_ID (ID продукта), T.SHOW_START (время эфира), т.е. для продукта в конкретном эфире. Если продукт показывают только в одном эфире за день, то все считается правильно, но если продукт показывают в нескольких эфирах, то MIN, MAX, SUM считает за целый день, а не в конкретном эфире.
PHP:
SELECT MIN(l.ON_AIR_START) as START, MAX(l.ON_AIR_START) as END, SUM(l.TIME_ON_AIR), T.SHOW_LOGO, T.COMMENT2 ,l.PRODUCT_ID as PRODUCT_ID, T.SHOW_START, LP.SP_GROSS_D as SP_GROSS_DISC, P.SP_GROSS_D, T.PRI_LABEL, DATE_FORMAT(l.ON_AIR_START, '%d.%m.%Y %H:%i:%s') as ON_AIR_START, DATE_FORMAT(T.SHOW_START, '%d.%m.%Y %H:%i:%s') as SHOW_START FROM `on_air_log` as l
LEFT JOIN `VGE_PRODUCT` as P ON P.DISPLAY_ID = l.PRODUCT_ID
LEFT JOIN `VGE_VGETABLE` as T ON T.PRODUCT_ID=P.ID AND DATE_FORMAT(T.SHOW_START, '%Y-%m-%d 00:00:00')=DATE_FORMAT(l.ON_AIR_START, '%Y-%m-%d 00:00:00')
LEFT JOIN `VGE_LUP_PRICE` as LP ON LP.PRODUCT_ID=P.ID AND DATE_FORMAT(l.ON_AIR_START, '%Y-%m-%d 00:00:00') = LP.SHOW_DAY
WHERE l.ON_AIR_START >='2013-06-12 00:00:00' AND l.ON_AIR_START <='2013-06-12 23:59:59'
GROUP BY l.PRODUCT_ID, T.SHOW_START
ORDER BY l.ON_AIR_START