Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Фурсов. Отбор данных: необходимо отобрать записи по заданному диапазону номеров касс, дат и фрагменту фио.Содержание книги
Поиск на нашем сайте Методы обработчиков кнопок отбора данных: procedure TfrmBook.sbFindClick(Sender: TObject); var where: string; begin DM.qBook.DisableControls; DM.qBook.Close; where:=''; if edN1.text<>'' then where:='Num_cass>=:n1'; if edN2.text<>'' then begin if where<>'' then where:=where+' and '; where:=where+'Num_cass<=: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+'Kod_cassir in (select Kod_cassir from Sprav_cass where Fio LIKE:fio)'; end; DM.qBook.SQL.clear; DM.qBook.SQL.add('SELECT * FROM CASS_BOOK '); if where<>'' then DM.qBook.SQL.add('WHERE '+where); DM.qBook.SQL.add('ORDER BY Data desc, Kod_cassir 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('fio').Value:='%'+edFio.Text+'%'; DM.qBook.Open; DM.qBook.EnableControls; end; Роман. Для номеров пар из заданного диапазона сформировать отчёт с группировкой по каждому корпусу и дням недели. Для каждой группы строк вывести общее количество студентов, резерв свободных мест, процент заполняемости аудиторий.
CREATE PROCEDURE "Roman"."ParOtch" (in Para_num_beg integer, in Para_num_end integer) result(Corp_num varchar (10), Week_day varchar (20), Week_day_n varchar (2), Count integer, Rezerv integer, Zapolnyemost numeric (4,1)) BEGIN SELECT Corp_num, Week_day, CASE When Week_day='понедельник' then 1 When Week_day='вторник' then 2 When Week_day='среда' then 3 … When Week_day='суббота' then 6 end as Week_day_n, sum (Count),sum(Capacity-Count),100*sum(Count)/sum(Capacity) FROM Raspisanie as b JOIN Sprav_aud as ps on b.Aud_numb = ps.Aud_numb WHERE Para_num between Para_num_beg and Para_num_end group by Corp_num, Week_day order by Corp_num, Week_day_n END Роман.Отбор данных: Необходимо отобрать поставки по заданному диапазону номеров пар, количеству людей и фрагменту названия предмета. Методы обработчиков кнопок отбора данных: procedure TfrmBook.sbFindClick(Sender: TObject); var where: string; begin // Отключаем видимый компонент от НД DM.qBook.DisableControls; // Закрываем НД DM.qBook.Close; // строка составного условия where:=''; // Первый проход - формирование составного условия if edN1.text<>'' then where:='Para_Num>=:n1'; if edN2.text<>'' then begin if where<>'' then where:=where+' and '; where:=where+'Para_Num<=:n2'; end; if edD1.Text<>'' then begin if where<>'' then where:=where+' and '; where:=where+'Count>=:d1'; end; if edD2.text<>'' then begin if where<>'' then where:=where+' and '; where:=where+'Count<=:d2'; end; if edPr.text<>'' then begin if where<>'' then where:=where+' and '; // where:=where+'Subject in (select Aud_numb from Sprav_aud where Aud_numb LIKE:aud)'; where:=where+'Subject in (select Subject from Raspisanie where Subject LIKE:sub)'; end; // формирование свойства SQL DM.qBook.SQL.clear; DM.qBook.SQL.add('SELECT * FROM RASPISANIE '); if where<>'' then DM.qBook.SQL.add('WHERE '+where); DM.qBook.SQL.add('ORDER BY Week_day asc,Para_num 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:=StrToInt(edD1.text); if edD2.text<>'' then DM.qBook.Parameters.ParamByName('d2').Value:=StrToInt(edD2.text); if edAud.text<>'' then
DM.qBook.Parameters.ParamByName('sub').Value:='%'+edPr.Text+'%'; // Открываем НД DM.qBook.Open; // Подключаем видимый компонент к НД DM.qBook.EnableControls; end;
Акс.
Данил. 7. Для заданного диапазона номеров мест хранения товара сформировать отчет с группировкой по поставщикам и номерам мест хранения. По каждой группе вывести общее количество, свободный остаток. Величина резерва должна составлять не более заданного процента от количества товара в данном месте хранения.
Чикина.Задание: Сформировать отчет с группировкой по департаментам. Для каждой группы вывести общее количество отработанных дней, израсходованных средств и среднюю величину израсходованных средств. В отчет включать отделы с номерами из заданного диапазона.
Программный код процедуры: 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 МартыновВариант 13 Сформировать отчет с группировкой по факультетам и годам набора (выделить из номера группы). По каждой группе вывести общее количество студентов, групп и среднее число студентов в группе. На факультете должно быть не менее заданного количества кафедр.
Схема БД из Sybase Central представлена на рис. 1.
Текст процедуры: ALTER PROCEDURE "admin"."lab4.1procedure"(Kolvo_kaf integer) RESULT(Kratkoe_naim varchar(20), Year_post varchar(4), OB_kol_stud integer, Kol_gr integer, Avg_kol_stud numeric(10,2)) BEGIN select Kratkoe_naim, substr(Nom_gr,length(Nom_gr)-1) as Year_post, sum(isnull(Kol_stud_male,0)+isnull(Kol_stud_female,0)), count(ku.Kod_facult), avg(isnull(Kol_stud_male,0)+isnull(Kol_stud_female,0)) from Kniga_ucheta ku join Spravochnik_Facultetov sf on ku.Kod_facult=sf.Kod_facult where sf.Kol_kafedr>=Kolvo_kaf group by Kratkoe_naim, Year_post order by Kratkoe_naim, Year_post END
Шишков.22. Сформировать отчет за заданный год с группировкой по месяцам и моделям. По каждой группе вывести общую стоимость продаж, количество рекламаций и средний процент рекламаций. В отчет включать компьютеры, относящиеся к заданному типу.
Схема базы данных в Sybase Central представлена на рис. 1.
Рис.1. Схема БД в Sybase Central Текст процедуры “ModelOverview” представлен на рис 2.
Драгулин. Сформировать отчет за заданный период времени с группировкой по участкам и месяцам. По каждой группе вывести количество отработанных дней, общее отработанное время и среднее отработанное время за день. В отчет включать участки заданного вида.
CREATE PROCEDURE "Andrey"."PeriodVr" (in Data_beg date, in Data_end date,in v_type varchar(30)) result( Name_uch varchar (50), Month_rab varchar (7), Kolichestvo integer, Otr_vremya numeric(6,2), Sr_otr_vremya numeric(6,2))
BEGIN SELECT Name_uch, convert (varchar (4), Year(data))+ '-'+convert (varchar (2),Month(data)) as mes, count(Name_uch),sum(Datediff (minute,Vr_prikhoda,Vr_ukhoda)*0.016667), avg(Datediff (minute,Vr_prikhoda,Vr_ukhoda)*0.01666) FROM Book_ucheta as b JOIN Sprav_uch as su on b.Kod_uch = su.Kod_uch WHERE Data between Data_beg and Data_end and su.type_uch = v_type group by Name_uch, mes order by 1,2 END
Задания с развёрнутым ответом:
Банковская книга ЭТОТ ОТВЕТ СЧИТАЕТСЯ ОТЛИЧНЫМ TADOConnection – отвечает за подключение к БД.
ADOConnection» ConnectionString» Use connection string» Build» SQL Anywhere OLE DB Provider» источник данных» пользователь и пароль» проверить соединение Name=DB keepConnection = true – Для поддержания соединения. LoginPrompt true, после тестирования false Connected true, после тестирования false
TADOQuery -qBankbook – отправляет запрос и получает данные из БД. TADOConnection Connection=DB Name=qBankbook SQL» SELECT *FROM Bankbook Order by dataOper desc
TDataSource –dsBankbook помещает полученные данные в таблицы. Connection» DB DataSet=qBankbook Name= dsBankbook
TDBGrid DataSource=DM.dsBankbook
|
||
|
Последнее изменение этой страницы: 2020-12-17; просмотров: 115; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.) |