Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.01.2014, 22:17
aypinki aypinki вне форума
Прохожий
 
Регистрация: 21.01.2014
Сообщения: 10
Версия Delphi: 7
Репутация: 10
По умолчанию манипуляции над выдачей 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.
Изображения
Тип файла: png Безымянный.png (21.2 Кбайт, 0 просмотров)

Последний раз редактировалось aypinki, 31.01.2014 в 22:26.
Ответить с цитированием
  #2  
Старый 01.02.2014, 10:12
aypinki aypinki вне форума
Прохожий
 
Регистрация: 21.01.2014
Сообщения: 10
Версия Delphi: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Аватар;1334329
GROUP BY по наименованию и SUM(количество)
И Table в пролете, только Query

Код:
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  
Старый 01.02.2014, 11:19
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Нет, неправильно. Все выражения в select, не обернутые агрегатными функциями, должны быть перечислены в group by. Для обхода этого ограничения поля наименований часто оборачивают функцией max, поскольку значения одинаковы, и вызов max по сути ничего не меняет.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:41.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter