Вообщем поскольку я не особо силён в сложных запросах sql нужна ваша помощь. Есть 3 таблицы выглядят так:
Так и мне из этих таблиц нужно сделать такой запрос: Выведите имена клиентов и количество их заказов, созданных в апреле 2016 года и содержащих один или больше товаров из списка (id: 151515,151617,151514), отсортируйте результат по убыванию суммы заказа.
Я смог сделать такое:
$stmt = $pdo->prepare("SELECT c.name, count(o.id) AS count_order FROM clients c LEFT JOIN orders o ON c.id = o.clients_id
LEFT JOIN products p ON o.id = p.order_id WHERE o.ctime >= :date1 AND o.ctime <= :date2 AND p.id = :p_id1 OR p.id = :p_id2 OR p.id = :p_id3 GROUP BY c.name");
$stmt->execute(array('date1' => $date1, 'date2' => $date2, 'p_id1' => 151515, 'p_id2' => 151617, 'p_id3' => 151514));
$clients = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$clients[] = $row;
}
Вообщем осталось только ввести сортировку по сумме заказа, как сделать сортировку я знаю, но вычислять сумму?
" select name, count_order from
( SELECT distinct c.name
, count(o.id) AS count_order
, sum(p.price) sumprice
FROM clients c
LEFT JOIN orders o ON c.id = o.clients_id
LEFT JOIN products p ON o.id = p.order_id
WHERE o.ctime >= :date1 AND o.ctime <= :date2 AND (p.id = :p_id1 OR p.id = :p_id2
OR p.id = :p_id3) GROUP BY c.name)
order by sumprice"
Если сортировать по сумме заказа
Виртуальный выделенный сервер (VDS) становится отличным выбором
Подскажите как мне починить цикл? Моя программа работала в консоли, принимала значение и отправляла в бд
Имеется задача обработки и аналитики логовОбъем логов относительно большой: за сутки около 50 миллионов строк, 20 ГБ в таблице СУБД MiriaDB, движок...
Есть страница, она является адаптивной, но для ее адаптивности приходится дублировать контент, те