Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2015, 06:00   #1
ron1tal
Новичок
Джуниор
 
Регистрация: 27.05.2015
Сообщений: 1
По умолчанию

Привет всем. Есть готовая программа, но нужно прикрутить два поиска по таким параметрам:

1) Определить среднюю цену на заданный вид товара и найти товары, выше ср. цены.
2) Определить самый большой по количеству товар по заданной единице измерения.

Вообщем есть сама база, нужно, чтобы при выборе в MainMenu определенного пункта поиска, открывалось окно с поиском. В этом окне я выбирая определенный товар через ComboBox получал на вывод в Edit среднюю цену этих товаров, а поле Мемо или ЛистБокс наименования товаров, которые по цене выше средней.

Во втором поиске, я выбирая единицу измерения через ComboBox должен получать на вывод в Edit самый большой по кол-ву товар.

Программу приложил, за ранее всем ОГРОМНОЕ СПАСИБО.

Совсем совсем ни у кого нет идей?
Вложения
Тип файла: rar Задача 7.rar (348.0 Кб, 6 просмотров)

Последний раз редактировалось Stilet; 27.05.2015 в 08:41.
ron1tal вне форума Ответить с цитированием
Старый 27.05.2015, 09:55   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
В этом окне я выбирая определенный товар через ComboBox
получай(узнавай) его(товара) ID
Цитата:
получал на вывод в Edit среднюю цену этих товаров,
Код:
SQLquery.SQL.text:='select id_tovara, avg(cena*kolvo) from ... where id_tovara=:tvr group by id_tovara';
SQLQuery.Params.ParamByName('tvr').Value:=<ID товара из предыдущего действия>
и показывай данные где угодно (Edit, Label, DBtext, ....)
Цитата:
а поле Мемо или ЛистБокс наименования товаров, которые по цене выше средней.
Код:
SQLQery2.SQL.Text:='select id_tovara, .... from ... group by id_tovara 
having avg(cena*kolvo)>:delta';
SQLQery2.Params.ParamByName('delta').value:=<цена вычисленная на предыдущем этапе>
и далее вывод куда душе угодно
Цитата:
ComboBox должен получать на вывод в Edit самый большой по кол-ву товар.
А если их будет несколько?

Код:
select id_tovara, typeismer, ...
from (... ) as t
inner join ( select max(kolvo) as mcol, typeismer from ... group by typeisnmer 
           ) as tcolon t.typeismer =tcol.typeismer and t.kolvo =tcol.mcol 
where t.typeismer =:ism
в качестве параметра указывать тип(единицу измерения)
как работать с параметрами смотри предыдущие примеры.

P.S. хотите научиться работать с БД, изучайте SQL.
Хотите начать изучать SQL, читайте Мартин Грубер (иногда пишут Грабер) Понимание SQL.
Все идеи придут и в вашу голову.
Цитата:
Совсем совсем ни у кого нет идей?
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 27.05.2015 в 10:01.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Осуществить поиск в БД DrWeb БД в Delphi 4 22.05.2012 20:06
Как осуществить поиск в диапазон? Simbad Microsoft Office Word 4 25.03.2010 12:09
необходимо осуществить поиск по файлу Antonio86 Общие вопросы Delphi 2 19.01.2008 00:29
Осуществить поиск necky Общие вопросы Delphi 1 28.08.2007 23:21