Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Драгулин. Отбор данных: необходимо отобрать записи по заданному диапазону кодов участков, дате и фрагменту фио.

Поиск

procedure TfrmBook.bOkClick(Sender: TObject); var where: string;

begin

DM.qBook.DisableControls;

DM.qBook.Close;

where:='';

if edN1.text<>'' then

where:='Kod_uch>=:n1';

if edN2.text<>'' then begin

if where<>'' then

  where:=where+' and ';

where:=where+'Kod uch<=:n2';

 end;

 if edD1.Text<>'' then begin

if where<>'' then

  where:=where+' and ';

where:=where+'Data>=:d1';

 end;

 if edD2.text<>'' then begin

if where<>'' then

  where:=where+' and ';

where:=where+'Data<=:d2';

 end;

if edFio.text<>'' then begin

if where<>'' then

  where:=where+' and ';

where:=where+'FIO LIKE:fios';

 end;

DM.qBook.SQL.clear;

DM.qBook.SQL.add('SELECT * FROM BOOK_UCHETA ');

if where<>'' then

DM.qBook.SQL.add('WHERE '+where);

DM.qBook.SQL.add('ORDER BY Kod_uch asc, Data asc');

 

if edN1.text<>'' then

DM.qBook.Parameters.ParamByName('n1').Value:=StrToInt(edN1.text);

if edN2.text<>'' then

DM.qBook.Parameters.ParamByName('n2').Value:=StrToInt(edN2.text);

if edD1.text<>'' then

DM.qBook.Parameters.ParamByName('d1').Value:=

     FormatDateTime('yyyy-mm-dd',StrToDate(edD1.text));

if edD2.text<>'' then

DM.qBook.Parameters.ParamByName('d2').Value:=

     FormatDateTime('yyyy-mm-dd',StrToDate(edD2.text));

if edFio.text<>'' then

DM.qBook.Parameters.ParamByName('fios').Value:='%'+edFio.Text+'%';

DM.qBook.Open;

DM.qBook.EnableControls;

end;

 

Пилиева.Сформировать отчет с группировкой по факультетам и дисциплинам (предметам). Для каждой группы вывести общее количество экзаменов, количество отличных оценок и средний балл. Номера групп должны быть в заданном диапазоне, а предметы должны читаться заданной кафедрой.

CREATE PROCEDURE "admin"."Usp"  (in num_beg varchar (20),

in num_end varchar (20),caf varchar (30))

result(

Faculty varchar (50),

Name_predm varchar (50),         Kolichestvo integer,

Kolichestvo_5 integer,

Srball numeric(6,2))

 

BEGIN

SELECT Faculty,sp.Name,

count(Name),sum(Count_5),

sum(Count_5*5+Count_4*4+Count_3*3)/sum(Count_5+Count_4+Count_3+Count_2)

FROM Book_uspev as b

JOIN Sprav_predm as sp on b.Cod_predm = sp.Cod_predm

WHERE Num_group between num_beg and num_end

and sp.Cafedr = caf

group by Faculty, sp.Name

order by Faculty, sp.Namе END

Пилиева. Отбор данных: Необходимо отобрать записи по заданному диапазону номеров групп, по флагу «Задолженность» (если флаг включен, отображать группы с задолженностями, иначе не отображать) и фрагменту названия предмета.

Методы обработчиков кнопок отбора данных:

procedure TfrmBook.sbFindClick(Sender: TObject);

var where: string;

begin

DM.qBook.DisableControls;

DM.qBook.Close;

where:='';

if edN1.text<>'' then

where:='Num_group>=:n1';

if edN2.text<>'' then begin

if where<>'' then

  where:=where+' and ';

where:=where+'Num_group<=:n2';

 end;

 

if ch1.Checked=false then begin

if where<>'' then

where:=where+' and ';

where:=where+'Count_2<1';

end

else if ch1.Checked=true then begin

if where<>'' then

where:=where+' and ';

where:=where+'Count_2>0';

end;

 

if edPr.text<>'' then begin

if where<>'' then

  where:=where+' and ';

where:=where+'Cod_predm in (select Cod_predm from Sprav_predm where Name LIKE:pred)';

 end;

DM.qBook.SQL.clear;

DM.qBook.SQL.add('SELECT * FROM BOOK_USPEV ');

if where<>'' then

DM.qBook.SQL.add('WHERE '+where);

DM.qBook.SQL.add('ORDER BY Faculty asc, Num_group asc');

 

if edN1.text<>'' then

DM.qBook.Parameters.ParamByName('n1').Value:=StrToInt(edN1.text);

if edN2.text<>'' then

DM.qBook.Parameters.ParamByName('n2').Value:=StrToInt(edN2.text);

if edPr.text<>'' then

DM.qBook.Parameters.ParamByName('pred').Value:='%'+edPr.Text+'%';

DM.qBook.Open; DM.qBook.EnableControls; end;

 

Прилипко. Для заданного периода дат сформировать отчет с группировкой по услугам и заказчикам. По каждой группе вывести общий (суммарный) объем заказов, общую и среднюю стоимости заказа. Услуги должны удовлетворять следующим условиям: иметь заданный вид.

Схема БД представлена на рис. 1.

CREATE PROCEDURE "DBUser"."Otch" (in Data_beg date,

in Data_end date,in u_type varchar(30))

result(

Name varchar (50),

Zakazchik varchar (50),

Volume numeric (6,2),

Obsh_stoim numeric (8,2),

Sr_stoim numeric (8,2))

 

BEGIN

SELECT Name,Zakazchik,sum(Volume_usl),avg(Price_1h*Volume_usl),sum(Price_1h*Volume_usl)

FROM Zakaz_book as zb

JOIN Sprav_usl as su on zb.Kod_usl = su.Kod_usl

WHERE Data between Data_beg and Data_end

and su.type = u_type

group by Name, Zakazchik

order by Name, Zakazchik END



Поделиться:


Последнее изменение этой страницы: 2020-12-17; просмотров: 65; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.143.7.53 (0.006 с.)