Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите построить SQL-запрос для статистического отчета по заказчикам
 
 автор: JC_Piligrim   (04.12.2006 в 17:02)   письмо автору
 
 

Здравствуйте! Я 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';


Как построить правильный запрос?

   
 
 автор: Trianon   (04.12.2006 в 18:53)   письмо автору
 
   для: 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 скорее описывает покупки, чем товары. В любом случае одной таблицы не хватает.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования