SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 21.03.2013 15:36:48

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

Суммирование строк с уникальным значением поля

В FastReport сделал отчет-накладную на перемещение оборудования.
Поля:
hwid - паспорт(уникальное для каждого устройства)
invoicen - номер накладной
invoiced - дата накладной
modeln - наименование модели
count - количество
modelid - код модели
apvalue1 - доп.параметры устройства
price2 - цена
amodeln - наименование для бухгалтерии

Мой запрос выглядит так:

SELECT t.hwid, h.invoicen, h.invoiced, t.modeln, t.count, t.modelid, a.apvalue1, t.price2, t.amodeln
FROM
tmp t
INNER JOIN hardware h ON (t.hwid=h.hwid)
LEFT OUTER JOIN apmodel a ON (t.modelid=a.modelid)


Если у оборудования разный modelid, то все ок, каждое наименование выводится в отдельной строке.
Хотелось бы сделать так, что если в отчет попадает несколько одинаковых наименований, то есть устройств с одним и тем же modelid, то чтобы они выводились не каждый в отдельную строку, а в одну, и количество ставилось соответствующее. Я так понимаю нужно написать условие и суммирование или какой-то составной запрос, но как правильно не знаю, с SQL мало знаком. Кто знает - подскажите пожалуйста.

Неактивен

 

#2 21.03.2013 17:07:20

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: Суммирование строк с уникальным значением поля

SELECT t.hwid, h.invoicen, h.invoiced, t.modeln,SUM(t.count), t.modelid, a.apvalue1, SUM(t.price2), t.amodeln
FROM
tmp t
INNER JOIN hardware h ON (t.hwid=h.hwid)
LEFT OUTER JOIN apmodel a ON (t.modelid=a.modelid) group by modelid

Отредактированно evgeny (21.03.2013 17:07:49)

Неактивен

 

#3 21.03.2013 17:30:07

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

Re: Суммирование строк с уникальным значением поля

evgeny написал:

SELECT t.hwid, h.invoicen, h.invoiced, t.modeln,SUM(t.count), t.modelid, a.apvalue1, SUM(t.price2), t.amodeln
FROM
tmp t
INNER JOIN hardware h ON (t.hwid=h.hwid)
LEFT OUTER JOIN apmodel a ON (t.modelid=a.modelid) group by modelid

Ошибка "MODELID is not unique and must be qualified"

Неактивен

 

#4 21.03.2013 17:39:54

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: Суммирование строк с уникальным значением поля

vladgunich написал:

evgeny написал:

SELECT t.hwid, h.invoicen, h.invoiced, t.modeln,SUM(t.count), t.modelid, a.apvalue1, SUM(t.price2), t.amodeln
FROM
tmp t
INNER JOIN hardware h ON (t.hwid=h.hwid)
LEFT OUTER JOIN apmodel a ON (t.modelid=a.modelid) group by modelid

Ошибка "MODELID is not unique and must be qualified"

SELECT t.hwid, h.invoicen, h.invoiced, t.modeln,SUM(t.count), t.modelid, a.apvalue1, SUM(t.price2), t.amodeln
FROM
tmp t
INNER JOIN hardware h ON (t.hwid=h.hwid)
LEFT OUTER JOIN apmodel a ON (t.modelid=a.modelid) group by t.modelid

Неактивен

 

#5 21.03.2013 17:43:46

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

Re: Суммирование строк с уникальным значением поля

evgeny написал:

vladgunich написал:

evgeny написал:

SELECT t.hwid, h.invoicen, h.invoiced, t.modeln,SUM(t.count), t.modelid, a.apvalue1, SUM(t.price2), t.amodeln
FROM
tmp t
INNER JOIN hardware h ON (t.hwid=h.hwid)
LEFT OUTER JOIN apmodel a ON (t.modelid=a.modelid) group by modelid

Ошибка "MODELID is not unique and must be qualified"

SELECT t.hwid, h.invoicen, h.invoiced, t.modeln,SUM(t.count), t.modelid, a.apvalue1, SUM(t.price2), t.amodeln
FROM
tmp t
INNER JOIN hardware h ON (t.hwid=h.hwid)
LEFT OUTER JOIN apmodel a ON (t.modelid=a.modelid) group by t.modelid

Я тоже так подумал, но тогда выскакивает SQL: GROUP BY clause is missing or invalid
И если  использовать а.modelid - тоже самое

Неактивен

 

Board footer

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