Для группировки записей по полям или выражениям применяется раздел GROUP BY оператора SELECT, что позволяет применять для каждой группы функции агрегирования.
Синтаксис данной части следующий:
[GROUP BY ВыражениеГруппировки, [...n]]
Например, чтобы определить количество товаров в каждом заказе, необходимо сгруппировать записи с одинаковым идентификационным номером заказа SalesOrderID и подсчитать количество записей в каждой группе:
SELECT SalesOrderID, count(ProductID) AS [Количество]
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID
При использовании GROUP BY для каждой определенной группы значений выводится только одна запись в итоговом наборе данных.
Если для каждого заказа еще необходимо подсчитать и общее количество товаров в заказе, то запрос должен быть дополнен:
SELECT SalesOrderID,
count(ProductID) AS [Количество],
sum(OrderQty) AS [Сумма Товаров]
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID
При группировке записей допускается также использование раздела WHERE, в этом случае группируются записи, удовлетворяющие этому условию.
Раздел WHERE позволяет определить, какие записи должны подвергнуться группировке, а раздел HAVING – какие группы должны быть выведены в итоговый набор данных. Ключевое слово HAVING можно использовать только в разделе GROUP BY.
Так с помощью этого раздела можно в итоговый набор данных поместить только те заказы, сумма товаров в которых превышает 150 единиц:
SELECT SalesOrderID,
count(ProductID) AS [Количество],
sum(OrderQty) AS [Сумма Товаров]
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID
HAVING sum(OrderQty) >= 150
Краткие итоги. Были рассмотрены основные варианты использования оператора SELECT, возможность и необходимость соединения таблиц (внутреннее, внешнее, перекрестное). Кроме того были изучены агрегатные функции MS SQL Server и способы их применения в операторе SELECT.
[1] DML – это семейство компьютерных языков, используемых в компьютерных программах или пользователями баз данных для получения, вставки, удаления или изменения данных в базах данных. SQL является самым известным и используемым представителем языков данного семейства.
Текстовый редактор Word (см. рис.7) предназначен для подготовки текстовых документов и имеет широкие возможности для их разнообразного форматирования, среди которых основными являются следующие:
* преобразование фрагментов, абзацев и всего текста целиком в другой тип шрифта, расположение на странице, задание обрамлений и цветов;
* проверка орфографии текста, использование синонимов, контекстных поисков и замен;
* создание документов по широкому набору шаблонов документов и стилей их оформления;
* вставка в текст рисунков, кадров с текстовой и графической информацией, объектов, создаваемых специальными программами;
* вставка в текст таблиц с широкими возможностями формирования их структуры (а также электронных таблиц из программы Excel) с вычислениями и построением на их основе в тексте графиков и диаграмм;
* автоматическое создание предметных указателей, подписей к рисункам и таблицам в тексте, оглавления документа на основе заданной его структуры;
* создание текстовых эффектов типа водяных знаков и художественного текста;
* сложное форматирование структуры страниц при печати итоговых документов и т.п.
Любой документ в окне программы может быть представлен в трех (в зависимости от версии редактора) основных видах, переход между которыми достигается нажатием кнопок режимов просмотра в левом нижнем углу окна:
* нормальный (или обычный);
* разметка страницы;
* структура документа.
Основным объектом для редактора при форматировании размещения текста на странице является абзац. Каждый абзац имеет свои левую и правую границы, красную строку (отступ в первой строке), режимы выравнивания, межстрочный интервал и т.п., которыми определяется стиль оформления абзаца.
Рис. 7. Общий вид окна программы Word
Стиль – это набор элементов форматирования, которыми определяется внешний вид текста в документе. Он содержит полную информацию о способе оформления абзаца или документа целиком: гарнитура, кегль, начертание, способ выравнивания, наложение и положение табуляторов, отступы, отбивки и т.п.
Новый документ всегда получает стиль оформления, задаваемый редактором по умолчанию и называемый Нормальный, или Обычный, который имеет определенные характеристики размера, типа и гарнитуры шрифта, расположения абзаца и т.п., полностью определяющие внешний вид вводимого текста. Затем все изменения внешнего вида текста, если они необходимы, накладываются автором с помощью выполнения доступных команд на этот начальный стиль.
При редактировании текста документа его фрагменты выделяются следующим образом:
* произвольный фрагмент – протянуть указателем мыши по нужной области текста;
* отдельное слово – щелкнуть дважды мышью, расположив ее указатель на выделяемом слове;
* отдельное предложение целиком – удерживая нажатой клавишу Ctrl, щелкнуть мышью один раз, расположив ее указатель в любом месте выделяемого предложения;
* абзац – трижды щелкнуть мышью, расположив курсор мыши где-либо на выделяемом абзаце;
* прямоугольный фрагмент (в таблицах) – удерживая нажатой клавишу Alt, щелкнуть мышью сначала в левом верхнем угле фрагмента, а затем в правом нижнем.
Кроме того, расположив указатель мыши в Полосе выделений, которая находится левее левой границы абзаца и на которой указатель мыши направлен стрелкой направо-вверх, можно выделить фрагменты текста следующим образом:
* целую строку – дважды щелкнуть мышью, расположив ее указатель напротив выделяемой строки;
* абзац – дважды щелкнуть мышью, расположив ее указатель напротив выделяемого абзаца;
* весь текст целиком – удерживая нажатой клавишу Ctrl, щелкнуть мышью один раз.
Выделенный фрагмент текста можно переместить или скопировать в указанное место, не используя Буфер обмена, следующим образом:
* перенести – подвести указатель мыши к выделенному фрагменту, когда указатель мыши в тексте изменится на стрелку, и затем, удерживая нажатой левую кнопку мыши, протянуть появившуюся вертикальную пунктирную черту до места в тексте, где должен расположиться передвигаемый фрагмент;
* скопировать – действовать аналогично описанному выше, однако удерживать при этом нажатой клавишу Ctrl, что приводит к появлению рядом с указателем крестика.
Информация в текстовом документе может располагаться как бы в 4 слоях:
* передний план – рисованные объекты, созданные с помощью панели инструментов Рисование и выдвинутые на передний план (поверх текста);
* текстовый слой – текст и вставленные в текст готовые рисунки;
* задний план – рисованные объекты, созданные с помощью панели инструментов Рисование и передвинутые на задний план (за текст);
* фоновый слой – текст, рисунки и рисованные объекты, созданные в режиме оформления колонтитулов страницы и видимые на странице как «водяные» знаки на самом нижнем уровне.
При вставке в текст графических иллюстраций можно поступить двояко:
* просто вставить рисунок в текст в указанном месте, в этом случае рисунок занимает отдельный абзац;
* предварительно создать в указанном месте рамку «кадра» и затем в него уже вставить рисунок, в этом случае рисунок может быть расположен посередине абзаца с обтеканием его текстом по краям.
Сама процедура вставки рисунков в текст документа может быть выполнена в трех различных режимах:
* через Буфер обмена – рисунок находится в документе и статичен, доступны практически только изменения размеров рисунка в целом;
* внедрение – рисунок находится в документе и связан с программой, его создавшей, при редактировании рисунка автоматически вызывается программа-редактор для этого рисунка (если она доступна на компьютере);
* связывание - в тексте документа сохраняется только место для рисунка и адрес на диске, по которому редактор может найти и вставить рисунок в документ в момент его просмотра на экране или печати на принтере, а при редактировании рисунка также автоматически вызывается программа-редактор для этого рисунка (если она доступна на компьютере).
Для выбора одного из двух последних способов – внедрения или связывания – необходимо при окончании процедуры вставки выбрать в диалоговом окне команды соответствующий режим. Преимуществом процедуры внедрения является независимость подготовленного документа от состояния источника внедренной иллюстрации, а процедура связывания со своей стороны предотвращает текстовый документ от «разбухания» по объему при наличии в нем большого количества рисунков.