SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 14.01.2009 10:31:37

Michael4u
Участник
Зарегистрирован: 14.01.2009
Сообщений: 3

Помогите написать представление!!!

Таблица Deliveries (Поставки товаров):
Содержимое поля                          Имя  Тип Длина Дес. Примечание
Шифр поставки                              Shifr  N       6      0    первичный ключ
Индекс поставщика                        Ind   C       6            внешний ключ
Индекс товара                               Good C       8            внешний ключ
Единица измерения                        Unit   C       3            'кг', 'шт', 'уп' (по умолчанию – 'кг')
Количество товара                         Cnt    N      7       2    обязательное поле
Цена единицы товара                    Cost   N      8      2
Вес единицы товара                     Weight N      7      2
Дата поставки                                Gdate D

Создать представление "Общая стоимость товаров" (название товара, общая стоимость).

Я сделал, но не работает:

create view v_sumcost as
select goods, count(*), sum(cost)
from deliveries
group by goods;
select * from v_sumcost;

Спасибо всем за внимание и помощь!!!
С уважением!


Прикрепленные файлы:
Attachment Icon Структура.jpg, Размер: 67,441 байт, Скачано: 513

Неактивен

 

#2 14.01.2009 10:49:32

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Помогите написать представление!!!

Честно говоря, не вижу, что Вас поставило в тупик.

SELECT g.name, SUM (d.cost * d.cnt)
FROM deliveries d
JOIN goods g ON d.good = g.id
GROUP BY d.good

Неактивен

 

#3 16.01.2009 10:10:10

Michael4u
Участник
Зарегистрирован: 14.01.2009
Сообщений: 3

Re: Помогите написать представление!!!

paulus, спасибо!
У меня вот такая еще загвоздка с запросом найти товары, чей остаток меньше 100 кг.
Я написал, но не работает

select m.good , n.id, n.name
from  deliveries m, goods n
where m.ind= n.id and count(weight)<100
group by name;

Заранее спасибо!
С уважением!

Неактивен

 

#4 16.01.2009 15:43:16

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Помогите написать представление!!!

условие после группировки называется having.

select m.good , n.id, n.name
from  deliveries m, goods n
where m.ind= n.id
group by name
having count(weight)<100;

Неактивен

 

#5 19.01.2009 09:51:38

Michael4u
Участник
Зарегистрирован: 14.01.2009
Сообщений: 3

Re: Помогите написать представление!!!

Понял, спасибо!!!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson