|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
манипуляции над выдачей sql запроса
при совпадении поля Name1_1(это nom1.Name1) нужно суммировать их Amount1(это composition.Amount) - я думаю вы поняли смысл(чтобы сохранились только уникальные записи Name1_1, с суммированным кол-вом значений принадлежащих им полей Amount1).
на скрине показано) код моего запроса Query1 - Код:
Select pl1.Datemy,pl1.Amount, Nomenclature.Name1,composition.Code_of_part, composition.Amount, nom1.Name1 From 'plan' as pl1 Left outer join nomenclature on nomenclature.Code_of_element= pl1.Code_of_product Left outer join composition on composition.code_of_product=pl1.Code_of_product Left outer join nomenclature as nom1 on nom1.Code_of_element=composition.Code_of_part where pl1.Datemy>=:StartDate and pl1.Datemy<=:StartDate помогите пожалуйста, как это сделать, я не силён в такого рода манипуляциях( p.s. забыл добавить! другие поля мне и не нужны! вывел так, для общей картины! только Name1_1 и Amount1. Последний раз редактировалось aypinki, 31.01.2014 в 22:26. |
#2
|
|||
|
|||
Цитата:
Код:
Select pl1.Datemy,pl1.Amount, Nomenclature.Name1,composition.Code_of_part, SUM(composition.Amount), nom1.Name1 From 'plan' as pl1 Left outer join nomenclature on nomenclature.Code_of_element= pl1.Code_of_product Left outer join composition on composition.code_of_product=pl1.Code_of_product Left outer join nomenclature as nom1 on nom1.Code_of_element=composition.Code_of_part where pl1.Datemy>=:StartDate and pl1.Datemy<=:StartDate Group by nom1.Name1 |
#3
|
||||
|
||||
Нет, неправильно. Все выражения в select, не обернутые агрегатными функциями, должны быть перечислены в group by. Для обхода этого ограничения поля наименований часто оборачивают функцией max, поскольку значения одинаковы, и вызов max по сути ничего не меняет.
Не стоит путать форумы с богадельнями. © Bargest |