Запрос сгруппирован по месяцам для нескольких JOIN

Хорошо, я группирую запрос по месяцам, поэтому я получаю запись для каждого месяца года, но мне нужно выяснить, как это сделать: в основном группировка по месяцам для двух разных операторов JOIN. Я пытаюсь получить количество или сумму количеств в каждой дочерней таблице, если это возможно, в одном запросе. Я мог бы просто выполнить цикл в php, но я пытаюсь найти способ сделать это в mysql.

Вот образец

SELECT SUM(purchase_quantity),SUM(sales_quantity)
FROM products p
INNER JOIN purchase_order_lines sl ON pl.product_id = p.id
INNER JOIN purchase_orders po ON pl.purchase_order_id = po.id
INNER JOIN sales_order_lines sl ON sl.product_id = p.id
INNER JOIN sales_orders so ON sl.sales_order_id = so.id
GROUP BY YEAR(so.posted & po.posted), MONTH(so.posted & po.posted)

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


person Kyro    schedule 19.10.2011    source источник


Ответы (1)


потому что вы группируете свой результат, вы получите счет один. почему бы вам не попробовать запустить отдельный оператор, который будет подсчитывать результат, и отдельный оператор для его группировки.

person user836910    schedule 19.10.2011
comment
Не уверен, что именно ты говоришь. Я пытаюсь найти способ сделать это за один выбор, если это возможно. У меня есть способ, который будет работать, если я переберу диапазоны месяцев в своем php-коде и просто выберу для каждого месяца в диапазоне, верну результаты и создам из них массив. В настоящее время это единственное решение, которое у меня есть, но я надеюсь на более эффективное решение, которое не будет настолько тяжелым для запросов, если это возможно. - person Kyro; 19.10.2011