|
|
|
| Здравствуйте! Я SQL только изучаю, неделю RTFM'лю, но по имеющимся неудобоваримым изложениям трудно вникнуть, как в моем случае использовать JOIN'ы и пр. Решил обратиться к вам. (СУБД PostgreSQL)
Есть две таблицы. Упрощенно, структура такая:
Users: id, name, type
Goods: id, customer_id, price
|
Нужно создать запрос (именно один большой запрос), который выводит в каждой строке следующие столбцы:
1. Заказчик (users.name, где users.type = 'customer'),
2. КоличествоКупленныхТоваров (count(goods, где goods.user_id = users.id AND users.type = 'customer')),
3. Общая цена товаров (sum(goods.price, где goods.user_id = users.id AND users.type = 'customer'))
|
Т.е., например
Заказчик1 | 10 товаров | на 1000 руб.
Заказчик2 | 15 товаров | на 3700 руб.
....
|
Подскажите, как правильно это сделать. Мой вариант такой (он не работает, хотя, мне кажется, должен был бы):
SELECT u.name, count(goods.*) FROM users as u INNER JOIN goods ON (goods.user_id = u.id) WHERE u.type = 'customer';
|
Как построить правильный запрос? | |
|
|
|
|
|
|
|
для: JC_Piligrim
(04.12.2006 в 17:02)
| | Неудивительно, если учесть, что в таблице goods нет поля user_id.
SELECT u.id, u.name, count(g.id) AS qty, sum(g.price) as total FROM users u JOIN goods g ON u.id = g.customer_id
|
Таблица goods скорее описывает покупки, чем товары. В любом случае одной таблицы не хватает. | |
|
|
|