RUS  ENG 

Пример выполнения SQL запросов

Online Справка создание SQL запросов

Пример 1 Отчет по участкам: количество и протяженность трубопроводов с разбивкой по диаметрам

В конструкции этого запроса используется оператор GROUP BY, который позволяет разделить записи базы данных по участку на группы. Группировка записей выполняться по значению внутреннего диаметра трубопровода. Выборка данных производится с помощью ключевого слова SELECT, после которого задаются параметры выборки. Осуществляется выбор следующих параметров:

  • Внутренний диаметр трубы, м;
  • Количество участков данного диаметра, для определения количества участковиспользуются функция COUNT;
  • Протяженность трубопроводов заданного диаметра, функция SUM определяет суммарную длину участков.
Ключевое слова AS используется для указания названий столбцов. После ключевого слова FROM указывает слой, в котором будет производиться выбор. Выражение WHERE используется для указания критериев выборки, в данном случае выбор осуществляется только по участкам. Участки водопроводной сети в структуре слоя имеют тип-8, условие type=8, в версии сборки 7.0.0.5425 и выше задается typeid=8.

SELECT [Внутренний диаметр трубы, м] AS "Диаметр",
COUNT(*) AS "Количество участков",
SUM([Длина участка, м]) AS "Протяженность"
FROM [Пример водопроводной сети]
WHERE typeid=8
GROUP BY [Внутренний диаметр трубы, м]

Смотреть видеоурок


Пример 2 Заполнение адресов по потребителям значениями из базы по домам

В запросе осуществляется работа с пространственными данными. В конструкции этого запроса используется оператор сравнения пространственных объектов между собой STWithin. Он проверяет объект для которого вызвана функция на вхождение в указанный пространственный объект сравнения. Для внесения изменения в заданные столбцы таблицы(базы данных слоя) используется оператор UPDATE, он употребляется в связке с ключевым словом SET после которого следует наименование обновляемых полей таблицы. После выражения WHERE, задаются критерии, по которым будут происходить обновления. В данном случае происходит обновление поля Адрес базы данных по потребителям (потребители водопроводной сети в структуре слоя имеют тип-5), при условии что, символ потребителя находится внутри площадного объекта здания. Условие выбора потребителей type=8, в версии сборки 7.0.0.5425 и выше задается typeid=8.

UPDATE [Пример водопроводной сети] SET [Пример водопроводной сети].[Адрес] = [Здания].[Улица]+" "+[Здания].[Номер дома] WHERE [Пример водопроводной сети].typeid=5 AND [Пример водопроводной сети].Geometry.STWithin([Здания].Geometry)

Конструкцию запроса можно изменить, применив псевдонимы для названий слоев. Для создания псевдонима для слоя, Используется оператор FROM, после названия слоя следует указать псевдоним для этого слоя (перед псевдонимом можно также добавить ключевое слово AS).

UPDATE L1 SET L1.[Адрес] = L2.[Улица]+" "+L2.[Номер дома] FROM [Пример водопроводной сети] AS L1, [Здания] AS L2 WHERE L1.typeid=5 AND L1.Geometry.STWithin(L2.Geometry)

Смотреть видеоурок