28.04.2017
Эффективная Навигация М2М
Меню сайта
Категории раздела
Учет топлива [6]
Статьи посвященные учету топлива
Прочие статьи [7]
SQL - учимся работать [5]
Форма входа
Вход через Google
Вход через Вконтакте
Вход через Facebook
Партнеры
Реклама

SQL: CyberFLeet: Занятие №2 сортировка, псевдонимы, фильтры часть 2/2

Занятие №2. Сортировка данных, фильтрация, расчетные значения. Часть 2/2





Так же одинаковые (если значения разные, то они будут автоматически приведены к одному типу типу первого значения, например, при сложении строка+число=строка, а число+строка=число) значения можно складывать (например из двух строк получать одну длинную). Для числовых значений доступны арифметические операции (плюс, минус, умножить, разделить, округление и так далее).

Попробуем написать скрипт, который бы складывал нам полное название ТС, состоящие из названия марки и Гос номера.

Создаем новый скрипт "с нуля"
данные о ТС хранятся в таблице [dbo].[FLEET_Object]
Имя таблицы марок dbo.FLEET_MarkCar

1. Начнем новый скрипт как всегда с SelectSelect
2. Пропустим пока указание колонок, и сразу перейдем к таблицеSelect 
from bn.dbo.FLEET_Object
 
3. Таблице дадим псевдоним OSelect 
from bn.dbo.FLEET_Object as O

4. Так как нам потребуется Марка, то добавим таблицу марки, через inner joinSelect 
from bn.dbo.FLEET_Object 
as O
inner join 

5. Добавим имя таблицы марок, указав псевдоним MSelect 
from bn.dbo.FLEET_Object 
as O
inner join bn.dbo.FLEET_MarkCar as M

6. Укажем, как связаны наши две таблицы - а связаны они через одноименные колонки MarkCarID, что и напишем после слова onSelect 
from bn.dbo.FLEET_Object 
as O
inner join bn.dbo.FLEET_MarkCar as M
on M.MarkCarID=O.MarkCarID

7. Что бы нам не попадались строки удаленные, сделаем фильтр по колонке ObjectActive таблицы ТСSelect 
from bn.dbo.FLEET_Object 
as O
inner join bn.dbo.FLEET_MarkCar as M
on M.MarkCarID=O.MarkCarID
where O.ObjectActive=1

8. Теперь нужно разобраться, какие именно колонки нам нужны:
это Название марки (
m.MarkCarName), государственный номер (o.ObjectGosNum), ну и колонка, состоящая из первых трех (Назовем ее "Название"). Название состоит из трех строк, Марка, далее двоеточие и пробел, далее Гос Номер (склеивание строк называется конкатенация).
Select 
m.MarkCarName as Марка,
o.ObjectGosNum as ГосНомер,
m.MarkCarName + ': '+o.ObjectGosNum as Название
from bn.dbo.FLEET_Object as O
inner join bn.dbo.FLEET_MarkCar as M
on M.MarkCarID=O.MarkCarID
where O.ObjectActive=1
Выполнить!


Примерно, что должно получиться приведено на рисунке.


Обращаю ваше внимание, что машины, для которых марка не указана (т.е. в колонке MarkCarID таблицы ТС  стоит NULL) в список не попали вообще (это свойство выбранного метода соединения inner join, но об этом в следующей статье)!




Источник: SQL, сортировка, фильтры, псевдонимы, CyberFleet, уроки, обучение
Похожие материалы
Категория: SQL - учимся работать | Добавил: logoff (13.03.2012) | Автор: Бондарь Михаил W
Просмотров: 872 | Теги: CyberFleet, SqL, SQL-Учимся работать, Уроки, скрипты | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
TOP 10 Популярное
1 Оборудование> Гранит-Навигатор 4.14
2 Оборудование> Абонентский терминал M2M Cyber GLX
3 Оборудование> Гранит-Навигатор 4.14: Настройка терминала
4 Прочее> "Красные" против "Синих" - статистка космических запусков России (СССР) и США
5 CyberFleet, CrossPoint> КиберФлит: Учет топлива при помощи датчиков
6 CyberFleet, CrossPoint> CyberFleet: Переустановка CyberFleet
7 Оборудование> M2M Cyber GLX: отправка команд
8 Прочее> SQL: CyberFleet: Занятие №3 Объединение таблиц Часть 1/2 (теория, inner join)
9 CyberFleet, CrossPoint> КиберФлит: Причины расхождения пробега по данным одометра и карте
10 CyberFleet, CrossPoint> КиберФлит: Подключаем карту Google
Наш опрос
Какой картографией вы пользуетесь в КиберФлите?
Всего ответов: 59
LogOff © 2017
Сайт создан в системе uCoz Рейтинг GPS Клуба. GPS навигаторы. GPS мониториг. GPS трекеры. ГЛОНАСС