Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011
Помог: 4 раз(а)
Всем здрасте. У меня возникла проблемка, не знаю как решить (( Может кто поможет? Дело вот в чем:
Есть 3 таблицы: справочник товаров, заказы и товары в заказах.
справочник товаров хранит всю инфу о товарах (id, название, цена, ...)
таблица заказов хранит инфу про заказы (id, номер, дата, заказчик...)
таблица товаров в заказе (id, id_заказа, id_товара, кол-тво_заказаного_товара)
Так вот, мне нужно выбрать желательно одним запросом, такую инфу из этих трёх таблиц
id_заказа, номер_заказа, заказчик, дата, сумма_заказа
g.цена_товара * gio.кол-во_данного_товара в заказе AS sum
FROM заказы o, товары g, товары_в_заказах gio
WHERE o.id_заказа = gio.id_заказа AND
g.id_товара = gio.id_товара
Проблем вроде нету кроме одной!
Если есть один заказ с двумя разными товарами, то мне его выбирает два раза, только с разной суммой. То есть например один товар стоит 1500 и его заказали две штуки, другой товар в том же заказе стоит 2000 и его заказали 3 штуки, то мне выведет как будто два разных заказа и сумма первого будет 3000, а второго 6000, все остальные поля одинаковы, и номер, и заказчик, и id.
Так вот собственно вопрос: Как изменить мой запрос, что бы он выводил все заказы и считал общую сумму одного заказа?
Постарался описать как можно подробнее )) Заранее всем откликнувшимся спасибо )
----- Ударим крепким сном по мукам совести!
EuGen
Отправлено: 16 Февраля, 2012 - 17:58:05
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
SUM(g.цена_товара * gio.кол-во_данного_товара в заказе)AS sum_order
FROM заказы AS o
LEFTJOIN товары AS g
ON o.id_заказа = gio.id_заказа
LEFTJOIN товары_в_заказах AS gio
ON g.id_товара = gio.id_товара
GROUPBY
o.id_заказа
?
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
lamozavrik
Отправлено: 16 Февраля, 2012 - 18:20:03
Частый гость
Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011
Помог: 4 раз(а)
EuGen, говроти, что не известное поле gio.id_заказа, но всё равно огромное тебе спасибо )) Совершенно забыл про GROUP BY )) Сделал немного другим запросом и все получилось ))
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.