Дано описание таблицы БД. Реализовать отбор данных. Указать перечень, полей, перечень компонентов и написать метод отбора данных. Использовать не менее 5 полей для условий отбора 


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



ЗНАЕТЕ ЛИ ВЫ?

Дано описание таблицы БД. Реализовать отбор данных. Указать перечень, полей, перечень компонентов и написать метод отбора данных. Использовать не менее 5 полей для условий отбора



ЭТОТ ОТВЕТ СЧИТАЕТСЯ ХОРОШИМ (28 из 30)

Таблица Bookuch (Учет выработки) включает поля: Артикул пряжи, таб.номер рабочего, дата, количество пряжи в кг, в т.ч. кол-во брака в кг
Таблица содержит поля: ид записи в книге (id_book_uch),Артикул пряжи (Articul), Таб.номер рабочего (Tb_numb), Дата(Date), Колво пряжи(count_pr), Кол-во брака (count_brak)

 

Форма просмотра и отбора данных содержит следующие компоненты:

1)DBGrid1 - для вывода таблицы с данными

2)компоненты Tedit:

-edArt - текстовое поле для ввода Артикула

-edN1 - для ввода начального номера рабочего

-edN2 - для ввода конечного номера рабочего

-edD1 - для ввода начально даты отбора

-edD2 - для ввода конечно даты отбора

 

3)два элемента SpeedButton для действий: поиск и отмена

4)элементы Label для вывода текста описывающего поле ввода

 

procedure TfrmBook.sbFindClick(Sender: TObject);

var where: string;

begin

DM.qBook.DisableControls;

DM.qBook.Close;

 

where:='';

if edArt.text <> '' then

       if where <> '' then

                   where:=where +'and';

       where: = where + 'articul LIKE:art';

end;

           

if edN1.text<>'' then

where:='Tab_numb>=:n1';

 

if edN2.text<>'' then

begin

if where<>'' then

  where:=where+' and ';

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

end;

 

if edD1.Text<>'' then begin

if where<>'' then

  where:=where+' and ';

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

 end;

 

if edD2.text<>'' then begin

if where<>'' then

  where:=where+' and ';

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

 end;

 

DM.qBook.SQL.clear;

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

if where<>'' then

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

DM.qBook.SQL.add('ORDER BY Id_book_uch,articul ');

 

if edArt.text<>'' then

DM.qBook.Parameters.ParamByName('art').Value:StrToInt(edArt.text);

 

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));

DM.qBook.Open;

DM.qBook.EnableControls;

end;

 

 

20. Дано описание таблицы БД. Реализовать отбор данных. Указать перечень, полей, перечень компонентов и написать метод отбора данных. Использовать не менее 5 полей для условий отбора

 

Таблица Bookprod (Книга продаж) включает поля: Номер счет-фактуры, дата, наименование покупателя, товар, количество товара, цена

ЭТОТ ОТВЕТ СЧИТАЕТСЯ ОТЛИЧНЫМ (30 из 30)

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

Перечень компонентов для отбора данных:

 

edN1, edN2-номер счёта-фактуры с ___ по ___

edD1,edD2- дата с ______ по______

edPok1- покупатель

edTov1-товар

 

6 TЕdit – для каждого поля фильтрации;

6 TLabel – для подписи каждого поля;

TButton sbFind – для отправки запроса к БД;

TDBGrid – для вывода полученного ответа от БД.

 

Метод составления SQL запроса:

procedure TfrmProd.sbFindClick(Sender: TObject);

var where: string;

begin

DM.qProd.DisableControls;

DM.qProd.Close;

where:='';

if edN1.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+'NomerSch >=:n1';

end;

if edN2.text<>'' then begin

if where<>'' then

where:=where+' and ';

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

end;

if edD1.Text<>'' then begin

if where<>'' then

where:=where+' and ';

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

end;

if edD2.text<>'' then begin

if where<>'' then

where:=where+' and ';

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

end;

if edPok1.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+'Pokupatel LIKE:pok';

end;

if edTov1.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+'Tovar LIKE:tov';

end;

DM.qProd.SQL.clear;

DM.qProd.SQL.add('SELECT * FROM Bookprod ');

if where<>'' then

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

DM.qProd.SQL.add('ORDER BY data desc');

if edN1.text<>'' then

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

if edN2.text<>'' then

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

if edD1.text<>'' then

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

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

if edD2.text<>'' then

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

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

if edK1.text<>'' then

DM.qProd.Parameters.ParamByName('pok').Value:='%'+edPok1.Text+'%';

if edV1.text<>'' then

DM.qProd.Parameters.ParamByName('tov').Value:='%'+edTov1.Text+'%';

DM.qProd.Open;

DM.qProd.EnableControls;

end;

 

21. Написать процедуру формирования отчета. Схема данных: Банковская книга: Номер расч.счета, дата операции, контрагент, вид операции (приход/расход), сумма. Справочник расч.счетов: Номер расч. счета, банк, вид валюты. Сформировать отчет по заданному виду валюты за заданный период времени с группировкой по датам, с расчетом приходных, суммы расходных операции, средней суммы расходной операции.

20 из 30

CREATE PROCEDURE "Admin."Overview" (in Data_beg date, in Data_end date,Vid_Valut varchar (30))

result(

       Data date,

       Prikh numeric(15,2),

       Raskh numeric (15,2))

 

BEGIN SELECT Dat,

CASE

When Vid_oper= «Приход» then SUM(Summa_p),

CASE

When Vid_oper= «Расход» then SUM(Summa_p),

CASE

When Vid_oper= «Расход» then AVG(Summa_p)

FROM Bank_book as b

JOIN Sprav_rash as su on b.Num_rasc = su.Num_rasc

WHERE dat between Data_beg and Data_end

and Vid_Valut = vid_v

group by Data

order by Data

END

20баллов из 30

21.Написать процедуру формирования отчета. Схема данных: Книга учета: Марка компьютера, дата, ФИО покупателя, цена, количество. Справочник марок: Марка, наименование, тип процессора Сформировать отчет за заданный период времени с группировкой по типу процессора с расчетом общего количества, стоимости продаж и средней ценой. В отчет включать ПК, у которых цена находится в заданном диапазоне, а цена продажи не менее заданной

ЭТОТ ОТВЕТ СЧИТАЕТСЯ ХОРОШИМ (20 из 30)

CREATE PROCEDURE "Admin1"."RptClinic"(in tip_proc(30),

in_data_beg Date,

in_data_end Date)

RESULT(Marka varchar(40),

kol integer,

price_prod integer,

Sred_Price integer)

 

BEGIN

select marka, count(kol),

avg(price) as Sred_Price

sum(price) as cena

 

from kniga_ucheta ku

join spravM s on ku.id_mark = s.id_mark

 

where s.tip_proc = tip.proc

and data between in_data_beg and in_data_end

group by tip_proc

order by tip_proc

END

Написать процедуру формирования отчета. Схема данных: Книга учета: Марка компьютера, дата, ФИО покупателя, цена, количество. Справочник марок: Марка, наименование, тип процессора. Сформировать отчет за заданный период времени с группировкой по типу процессора с расчетом общего количества, стоимости продаж и средней ценой. В отчет включать ПК, у которых цена находится в заданном диапазоне, а цена продажи не менее заданной.

CREATE PROCEDURE "admin"."procedure"(in CenaBeg numeric(15,2), in CenaEnd numeric(15,2), in CenaProd integer)

RESULT(TipProc varchar(50),

  Period varchar(4),

  OBKol integer,

  OBCena numeric(15,2),

  SRCena numeric(15,2))

BEGIN

select TipProc,

  year(Date) as Period,

  sum(isnull(Kolvo,0)) as OBKol,

  sum(isnull(Cena,0)) as OBCena,

  avg(isnull(Cena,0)) as SRCena

from Kniga_ucheta ku

   join Spravochnik_Marok sm on ku.Marka=sm.Marka

where OBCena>=CenaProd and Cena between CenaBeg and CenaEnd

group by TipProc, Period

order by TipProc, Period

END

15 баллов из 30

Написать процедуру формирования отчета.Схема данных: Книга рекламаций: Год, месяц, код модели компьютера, цена, продано, количество рекламаций. Справочник моделей: Код модели, наименование модели, тип. Сформировать отчет за заданный год с группировкой по месяцам с расчетом общей стоимости продаж, количества рекламаций и максимального процента рекламаций. В отчет включать компьютеры, относящиеся к заданному типу

ЭТОТ ОТВЕТ СЧИТАЕТСЯ ХОРОШИМ (20 из 30)

CREATE PROCEDURE "Admin"."RptReklam"(in zad_year date,

                                                                                                      in tip varchar(40))

RESULT(

Mesyac date,

Naimen_model varchar(40),

Count_prod integer,

Count_rekl integer,

Max_proc_rekl integer)

BEGIN

SELECT Mes,

     Name_model,

     Sum(Prodano),

     Sum(Kolvo_rekl),

     MAX(100* Kolvo_rekl/Prodano)

 FROM Book_reklam bk

 JOIN Sprav_model sm on sm.code_model = br.code_model

 WHERE zad_year = year_op and

       tip = type_comp

 GROUP BY mes, name_model

 

END

20 баллов

 

К 21

 

Сумма с условием

sum (case when Kolvo_Shatnix_edinic >2 then Kolvo_Shatnix_edinic else 0 end),

sum (case when type_uch='Промышленность' then Datediff (minute,Vr_prikhoda,Vr_ukhoda)*0.016667 else 0 end)

 

Сформировать отчет с группировкой по департаментам. Для каждой группы вывести общее количество отработанных дней, израсходованных средств и среднюю величину израсходованных средств. В отчет включать отделы с номерами из заданного диапазона.

 

Программный код процедуры:

CREATE PROCEDURE "admin"."prd1"(in diapaz_begin integer, in diapaz_end integer)

result (Depart varchar (50),

   Kol_otr integer,

   Izpas_sr numeric(11,2),

   Sred_Izras numeric(11,2))

BEGIN

SELECT Depart,

  sum(kol_otr), sum(Izras_god), avg(Izras_god)

FROM Sprav_Otdel as sp

JOIN Kniga_Uch as k on sp.Kod_Otdel=k.Kod_Otdel

WHERE sp.kod_otdel between diapaz_begin and diapaz_end

 

 

GROUP BY Depart

END

 

 

Написать процедуру формирования отчета. Схема данных: Книга выработки: Артикул пряжи, табельный номер рабочего, дата, количество пряжи в кг, в т.ч. кол-во брака в кг. Справочник рабочих: Табельный номер, ФИО, тарифная ставка (руб за кг 1 с.)

ЭТОТ ОТВЕТ СЧИТАЕТСЯ ХОРОШИМ (25 из 30)

 

Сформировать отчет за заданный период времени с группировкой по таб.номеру рабочего с выводом общего объема произведенной продукции, начисленной зарплаты и максимального процента брака.

CREATE PROCEDURE "Roman"."KnigaVyr" ((in Data_beg date, in Data_end date)

 

result(

Tab_nomer integer,

Ob_obj numeric (10,2)

Zarplata numeric(10,2),

MaxProc numeric(10,2)

)

BEGIN

SELECT

KV.Tab_nomer, sum(Kol_prya), sum(Kol_prya*Tarif_st), max (Kol_braka/Kol_prya)

FROM KnigaVyr as KV

JOIN SpravRab as SR on KV.Tab_nomer=SR.Tab_nomer

WHERE Dat between Data_beg and Data_end

group by KV.Tab_nomer

order by KV.Tab_nomer

END

 

 



Поделиться:


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

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