![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Справки по проданным путевкам.
Этот пункт меню дает пользователю возможность узнать различную справочную информацию. Он имеет два подменю: маршруты, купленные на заданный период и самые активные клиенты. Первый подпункт позволяет выбрать все маршруты, купленные на заданный период. Вкладка с примером выполнения запроса имеет вид: В текстовых полях необходимо задать месяц и год начала и конца периода. При нажатии кнопки ОК вызывается процедура главной формы и формируется таблица полученных данных. //процедура главной формы 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 вводится из приложения. Внешний вид формы с примером выполнения запроса имеет вид:
|