Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Вычисляемые поля. При использовании команды выборки система VFP позволяет применять агрегирующие функции для организации работы с вычисляемыми полями




При использовании команды выборки система VFP позволяет применять агрегирующие функции для организации работы с вычисляемыми полями. Выражение вычисляемого поля должно быть указано в основном списке полей. Можно использовать служебное слово AS для указания уникального имени вычисляемого поля в результирующей выборке.

Например:

SELECT cnmGoodsGrp, COUNT (icdGoods) AS Kolvo FROM Goods GROUP BY cnmGoodsGrp

в результате выполнения этой команды будет получена выборка, состоящая из двух полей cnmGoodsGrp и Kolvo, в которых будут содержаться наименования групп товаров и количество товаров в каждой группе.

SELECT Ordsaled.icdOrder, Ordsaled.icdGoods, (nOrderQuant*nUnitPrice) AS S1 FROM Ordsaled LEFT JOIN Goods ON Ordsaled.icdGoods=Goods.icdGoods

по этой команде результирующая выборка будет содержать информацию о номере заказа, номере товара и общей сумме за товар в данном заказе. Общая сумма будет помещена в поле с именем S1.

Запомните:

1. Оператор SELECT – SQL замкнут относительно понятия таблицы, т.е. операции проводятся над таблицами и результатом является тоже таблица. Таким образом, допускается использование многократно вложенных операторов SELECT, когда выражение одного оператора входит в качестве источника или условия для другого оператора. Однако рекомендуется избегать вложенности по нескольким причинам, а именно: многократная вложенность существенно усложняет «читаемость» программного кода. В промышленных системах размеры сложного оператора SELECT могут превышать несколько экранных страниц, при этом очень сложно отследить логику запроса (даже если текст снабжен подробными комментариями). Решением данной проблемы могут служить несколько последовательных операторов выборки, когда результат предыдущего оператора в явном виде указан в следующем. Дополнительным удобством нескольких последовательных операторов можно считать возможный контроль промежуточных результатов, что позволяет отслеживать возможные ошибки вычислений. Единственным недостатком можно считать множество открываемых курсоров, которые требуется отслеживать и закрывать насильственно.

2. Требования к синтаксису оператора SELECT – SQL в 9-й версии VFP были существенно усилены. Это иногда приводит к возникновению ошибок в, кажущихся простыми, запросах. Эти ошибки почти всегда возникают при указании группировки данных. При этом система требует, чтобы ко всем полям, указанным в группировке, были применены агрегирующие функции, что не всегда удобно. Снизить уровень требований, и соответственно избежать ошибок, можно командой SET ENGINEBEHAVIOR 70, которую допускается прописать в командном окне или непосредственно в теле самой программы. Восстановление уровня осуществляется командой SET ENGINEBEHAVIOR 90.

3. В 9-й версии VFP было упразднено понятие ODBC драйверов, и вместо них введен OLE DB Provider. Это означает, что для доступа к базам данных, созданных в 9-й версии следует устанавливать фирменный OLE DB драйвер, который имеется в наличии в установочном комплекте, но автоматически не устанавливается. Доступ к остальным источникам через удаленные представления осуществляется по-старому, посредством использования источников данных ODBC.

Задания

1. Выберите из таблицы всех покупателей, чей кредит превышает 1000.

2. Выберите всех покупателей, живущих в России и Украине.

3. Выберите всех покупателей, чей кредит находится в промежутке от 1000 до 50000.

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

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

6. Выдайте на экран всех покупателей, которые сделали заказ на сумму превышающую 10000.

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

8. Откройте созданные представления и измените некоторые данные из таблиц. После закрытия представлений убедитесь, что изменения были внесены в соответствующие таблицы.

9. Создайте представление данных, позволяющее редактировать телефоны покупателей. Представление должно содержать ФИО покупателя (как единое целое, а не как три поля) и его телефон.

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

11. Создайте представление данных, которое по полученной фамилии выдаст информацию обо всех покупках, совершенных этим покупателем. Обратите внимание, что пересчет данных, выведенных представлением данных, происходит только в момент его открытия. Для учета внесенных изменений необходимо закрыть представление и открыть его снова.

12. Создайте источник данных для доступа к вашей базе данных, используя удаленное представление данных. После этого создайте временный проект Temp, который должен содержать только пустую базу данных. Создайте в этой базе данных удаленное представление данных, используя в качестве соединения созданный вами источник данных. Просмотрите созданное удаленное представление и сравните его данные с теми, что хранятся в самой базе данных. Попробуйте проделать то же самое с базой данных соседа.

 




 

 

 




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 581; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.