- •Тема 5. Разработка пользовательского интерфейса.
- •5.1. Средства быстрой разработки приложений.
- •5.2. Сложные системы. Методы их декомпозиции.
- •5.3. Создание классов разработчика.
- •5.4. Язык sql. Sql – запросы.
- •Sql – запросы.
- •Запрос 1. Простые запросы.
- •Запрос 2.Сложные условия поиска.
- •Сортировка результатов.
- •Запросы с подзапросами
- •5.5. Работа с “Word”, “Excel” и ActiveX
- •Понятие о com-клиенте и com-сервере
- •Vtf как com-клиент.
- •Листинг программы экспорта в Word
- •Основные структуры программы.
- •Комментарии к каждой строке листинга
- •Листинг программы экспорта в Excel
- •ActiveX → Календарь
- •Процедура определения календарной даты
- •5.6. Визуальные средства проектирования.
- •5.6.1. Мастера.
- •5.6.2. Конструкторы.
- •5.6.3. Построители.
Сортировка результатов.
В общем случае строки в результирующей таблице SQL-запроса не упорядочены каким либо определенным образом. Для этого используются операторы:
ORDER BY,
ASC – в порядке возрастания значений,
DESC – в порядке убывания значений.
По умолчанию ASC.
Запрос 7. Сортировка по значениям одного столбца.
Текст запроса: Составьте отчет о зарплате всех работников компании, расположив строки в порядке убывания суммы зарплаты.
Используется таблица Staff.
Формулировка запроса:
Select sno, fname, lname, salary ;
From DreamHome! Staff ;
ORDER BY salary DESC;


Запрос 8. Сортировка по нескольким столбцам.
Текст запроса: Подготовьте список сдаваемых в аренду объектов, упорядоченный по их типу и в порядке убывания арендной платы.
Формулировка запроса:
Select pno, type, rooms, rent ;
From DreamHome! Property_for_rent ;
ORDER BY type, rent DESC;


** type - сортируется по возрастанию, а внутри rent по убыванию.
Использование обобщающих функций языка SQL.
Стандарт языка SQL-1 содержит 5 обобщающих функций:
1. COUNT – количество значений в указанном столбце.
2. SUM – сумма значений, указанных в числовом столбце.
3. AVG – среднее значение указанное в числовом столбце.
4. MIN – минимальное значение в указанном столбце.
5. MAX – максимальное значение в указанном столбце.
Все функции оперируют с одним указанным доменом.
Далее приведены тексты запросов, которые реализованы в проекте «Запросы» для Visual FoxPro
Select sno,fname,lname,position,salary/12 as зм;
From Dreamhome!staff;
Where salary>10000;
into table "Запрос1(13.5).dbf"
browse
use
****** ТЕКСТ ЗАПРОСА
* Перечислите весь персонал с размером заработной платы
* больше 10 000 фунтов стерлингов в год
Select bno,street,area,city,pcode;
From Dreamhome!branch;
Where city="London" OR city="Glasgow";
into table "Запрос2(13.6).dbf"
browse
use
****** ТЕКСТ ЗАПРОСА
* Перечислите адреса всех отделений компании в Лондоне и Глазго
Select bno,street,area,city,pcode;
From Dreamhome!branch;
Where city IN ("London","Glasgow");
into table "Запрос3(13.6.1).dbf"
browse
use
****** ТЕКСТ ЗАПРОСА
*Перечислите адреса всех отделений компании в Лондоне и Глазго
Select bno,street,area,city,pcode;
From Dreamhome!branch;
Where city NOT IN ("London","Glasgow");
into table "Запрос4(13.6.2).dbf"
browse
use
****** ТЕКСТ ЗАПРОСА
* Перечислите адреса всех отделений компании,
* не находящихся в Лондоне и Глазго
Select sno,fname,lname,position,salary;
From Dreamhome!staff;
Where salary BETWEEN 20000 AND 30000;
into table "Запрос5(13.7).dbf"
browse
use
****** ТЕКСТ ЗАПРОСА
* Перечислите весь персонал с годовой зарплатой
* от 20 000 до 30 000 фунтов стерлингов
Select sno,fname,lname,position,salary;
From Dreamhome!staff;
Where address LIKE "%A%";
into table "Запрос6(13.9).dbf"
browse
USE
****** ТЕКСТ ЗАПРОСА
*Найдите всех работников, проживающих в городе Глазго
Select sno,fname,lname,salary;
From Dreamhome!staff;
order by 4 desc;
into table "Запрос7(13.11).dbf"
browse
use
****** ТЕКСТ ЗАПРОСА
* Составьте отчёт о зарплате всех работников компании,
* расположив строки в порядке убывания суммы зарплаты
Select pno,type,rooms,rent;
From Dreamhome!property_for_rent;
order by type,rent desc;
into table "Запрос8(13.12).dbf"
browse
use
****** ТЕКСТ ЗАПРОСА
* Подготовьте сокращённый список сдаваемых в аренду объектов,
* упорядоченный по их типу и в порядке убывания арендной платы
Select count(Position) as count, sum(salary) as sum ;
From Dreamhome!staff;
wher position = "Manager";
into table "Запрос9(13.14).dbf"
browse
use
****** ТЕКСТ ЗАПРОСА
* Определите общее количество менеджеров компании
* и вычислите сумму их годовой зарплаты
Select min(salary) as min, max(salary) as max,avg(salary) as avg;
From Dreamhome!staff;
wher position="Manager";
into table "Запрос10(13.15).dbf"
browse
use
****** ТЕКСТ ЗАПРОСА
* Вычислите значение минимальной, максимальной
* и средней заработной платы менеджеров фирмы
Select bno,count(sno) as count,sum(salary) as sum;
From Dreamhome!staff;
Where bno LIKE "B%";
group by bno;
order by bno;
into table "Запрос11(13.17).dbf"
browse
use
****** ТЕКСТ ЗАПРОСА
* Определите количество персонала,
* работающего в каждом из отделений компании,
* а также их суммарную зарплату
Select bno,count(sno) as count,sum(salary) as sum;
From Dreamhome!staff;
Where bno LIKE "B%";
group by bno;
having count(sno)>1;
order by bno;
into table "Запрос12(13.18).dbf"
browse
use
****** ТЕКСТ ЗАПРОСА
* Для каждого отделения компании с численностью
* более одного человека определите количество
* работающих и сумму их заработной платы
