Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Справки по проданным путевкам.






Этот пункт меню дает пользователю возможность узнать различную справочную информацию. Он имеет два подменю: маршруты, купленные на заданный период и самые активные клиенты.

Первый подпункт позволяет выбрать все маршруты, купленные на заданный период. Вкладка с примером выполнения запроса имеет вид:

В текстовых полях необходимо задать месяц и год начала и конца периода. При нажатии кнопки ОК вызывается процедура главной формы и формируется таблица полученных данных.

//процедура главной формы

procedure TForm2.dbedCodeChange(Sender: TObject);

begin

DataModule1.PassClientCode (lcbFio.Text);

end;

//процедура модуля данных

procedure TDataModule1.PassClientCode (FIO: string);

begin

qPassClientCode.Active: =False;

qPassClientCode.ParamByName ('FIO').AsString: =Fio;

DataModule1.qPassClientcode.Active: =True;

end;

 

Код SQL-запроса:

select clientcode, quantity, pass.departuredate, DURATION, pass.RouteCode

from ROUTE inner join pass on route.ROUTECODE=pass.ROUTECODE

where pass.departuredate between: StartDate and: EndDate

 

Запрос выполняет поиск маршрутов тех путевок и вывод данных по ним, дата отправления которых лежит в интервале между двумя значениями: startdate и: enddate. Значения этих параметров задаются в приложении в соответствующих полях.

Подпункт меню «Самые активные клиенты» позволяет пользователю ИАС выявить в списке зарегистрированных клиентов тех, которые имеют наибольшую накопленную стоимость купленных путевок за год.

Для определения самого активного клиента требуется ввести год, за который нужно проанализировать данные и нажать кнопку ОК. При нажатии кнопки вызывается процедура главной формы и сведения, возвращенные соответствующим запросом, сформировываются в таблицу.

//процедура главной формы

procedure TForm2.btOkKlientClick(Sender: TObject);

begin

DataModule1.CoolClient(edYearClient.text);

end;

//процедура модуля данных

procedure TDataModule1.CoolClient (year: string);

begin

qCoolClient.Active: =False;

qCoolClient.ParamByName ('Year').AsInteger: =StrToInt(Year);

DataModule1.qCoolClient.Active: =True;

end;

 

Код SQL-запроса:

 

select pass.CLIENTCODE, c.Fio, SUM(PROFIT.COST) AS Summa

from CLIENT c inner join PASS on c.CLIENTCODE = pass.CLIENTCODE

join PROFIT on PASS.CODEOFPASS = PROFIT.CODEOFPASS

where extract(year from profit.DATEOFSAIL)=: year

group by pass.CLIENTCODE, c.fio

HAVING (SUM(PROFIT.COST) = (select max(Summa) from

(select pass.CLIENTCODE, SUM(PROFIT.COST) AS Summa

from PASS join PROFIT on PASS.CODEOFPASS = PROFIT.CODEOFPASS

GROUP BY pass.CLIENTCODE) as tmp))

Запрос вывод краткую информацию о кленте (КодКлиента и ФИО), имеющего максимальную накопленную стоимость путевок, а также сумму купленных этим клиентом путевок. При выполнении запроса анализируются данные за один год. Значение переменной: year вводится из приложения. Внешний вид формы с примером выполнения запроса имеет вид:

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.