IPB
+7 (495) 374-00-47
Рассчитать стоимость

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
Хитрые отчеты
MAXIMA TAXI
сообщение 21.1.2013, 12:20
Сообщение #1


Активный участник
***

Группа: MAXIMA GROUP admins
Сообщений: 1374
Регистрация: 9.11.2010
Пользователь №: 21
Должность:Директор



В этой теме будем публиковать примеры отчетов, которыми можно дополнить MAXIMA TAXI в разделе "Контрагенты".

Ниже будут перечислены sql -запросы, на основании которых можно создавать новые отчеты. Для добавления отчета необходимо перейти в справочник «Клиенты -> Контрагенты», установить курсор на разделе "Аналитика" и нажать кнопку "Добавить". В открывшемся окне ввести название отчета и в поле "SQL" - необходимо скопировать SQL запрос. Нажать кнопку "Применить".

Просьба тему не засорять и оформлять просьбы в виде коротких конструктивных предложений. Спасибо.


--------------------
MAXIMA TAXI - Технологии Вашего превосходства
www.telemaxima.ru
Перейти в начало страницы
 
+Цитировать сообщение
MAXIMA TAXI
сообщение 21.1.2013, 12:24
Сообщение #2


Активный участник
***

Группа: MAXIMA GROUP admins
Сообщений: 1374
Регистрация: 9.11.2010
Пользователь №: 21
Должность:Директор



Название отчета:
Водители - давно не выходили на смену (более недели)

SQL-запрос:

select
d.id,
d.surname as 'Фамилия',
d.name as 'Имя',
d.patronymic 'Отчество',
isnull(cast(cast ((GETUTCDATE() - (select MAX(datetime_from)
from orders
where id_crew in (select id from crews where id_driver=d.id))) as int) as varchar(100)), 'Нет заказов') as 'Дней не выполнял заказы',
w.name as 'Рабочая группа',
(isnull((select name from drivers_groups where id=d.id_group), '')) as 'Группа водителей',
--dbo.fn_get_first_phone(d.id, 0) as 'Телефон по-умолчанию', --будет доступно начиная с версии 1.40.0,
dbo.fn_get_phones(d.id, 0) as 'Телефоны'

from drivers d
left join workers_state w on w.id = d.id_worker_state
where
(
not exists(select 1 from orders where id_crew in (select id from crews where id_driver=d.id)) and
(GETUTCDATE() - d.create_date) > 7
)
or
GETUTCDATE() - (select MAX(datetime_from)
from orders
where id_crew in (select id from crews where id_driver=d.id)) > 7
order by w.id

Начиная с 40-й версии можно будет использовать вот такой SQL-запрос (добавлен вывод телефона водителя по-умолчанию):

select
d.id,
d.surname as 'Фамилия',
d.name as 'Имя',
d.patronymic 'Отчество',
isnull(cast(cast ((GETUTCDATE() - (select MAX(datetime_from)
from orders
where id_crew in (select id from crews where id_driver=d.id))) as int) as varchar(100)), 'Нет заказов') as 'Дней не выполнял заказы',
w.name as 'Рабочая группа',
(isnull((select name from drivers_groups where id=d.id_group), '')) as 'Группа водителей',
dbo.fn_get_first_phone(d.id, 0) as 'Телефон по-умолчанию',
dbo.fn_get_phones(d.id, 0) as 'Телефоны'

from drivers d
left join workers_state w on w.id = d.id_worker_state
where
(
not exists(select 1 from orders where id_crew in (select id from crews where id_driver=d.id)) and
(GETUTCDATE() - d.create_date) > 7
)
or
GETUTCDATE() - (select MAX(datetime_from)
from orders
where id_crew in (select id from crews where id_driver=d.id)) > 7
order by w.id


--------------------
MAXIMA TAXI - Технологии Вашего превосходства
www.telemaxima.ru
Перейти в начало страницы
 
+Цитировать сообщение
MAXIMA TAXI
сообщение 21.1.2013, 12:29
Сообщение #3


Активный участник
***

Группа: MAXIMA GROUP admins
Сообщений: 1374
Регистрация: 9.11.2010
Пользователь №: 21
Должность:Директор



Название отчета:
Водители - сегодня День рождения

SQL-запрос:

select d.id,
d.surname as 'Фамилия',
d.name as 'Имя',
d.patronymic 'Отчество',
d.birth_date as 'Дата рождения',
(select datepart(yyyy,getdate()) - datepart(yyyy, birth_date)) as 'Исполнилось',
w.name as 'Рабочая группа',
--dbo.fn_get_first_phone(d.id, 0) as 'Телефон по-умолчанию', --будет доступно начиная с версии 1.40.0,
dbo.fn_get_phones(d.id, 0) as 'Телефоны'

from dbo.drivers d

left join workers_state w on w.id = d.id_worker_state

where birth_date is not null and datepart(dd, GETDATE()) = datepart(dd, birth_date)
and datepart(mm, GETDATE()) = datepart(mm, birth_date)
order by w.id


Начиная с 40-й версии можно будет использовать вот такой SQL-запрос (добавлен вывод телефона водителя по-умолчанию):

select d.id,
d.surname as 'Фамилия',
d.name as 'Имя',
d.patronymic 'Отчество',
d.birth_date as 'Дата рождения',
(select datepart(yyyy,getdate()) - datepart(yyyy, birth_date)) as 'Исполнилось',
w.name as 'Рабочая группа',
dbo.fn_get_first_phone(d.id, 0) as 'Телефон по-умолчанию',
dbo.fn_get_phones(d.id, 0) as 'Телефоны'

from dbo.drivers d

left join workers_state w on w.id = d.id_worker_state

where birth_date is not null and datepart(dd, GETDATE()) = datepart(dd, birth_date)
and datepart(mm, GETDATE()) = datepart(mm, birth_date)
order by w.id


--------------------
MAXIMA TAXI - Технологии Вашего превосходства
www.telemaxima.ru
Перейти в начало страницы
 
+Цитировать сообщение
MAXIMA TAXI
сообщение 21.1.2013, 14:43
Сообщение #4


Активный участник
***

Группа: MAXIMA GROUP admins
Сообщений: 1374
Регистрация: 9.11.2010
Пользователь №: 21
Должность:Директор



По просьбе трудящихся усовершенствовали ранее опубликованные запросы


--------------------
MAXIMA TAXI - Технологии Вашего превосходства
www.telemaxima.ru
Перейти в начало страницы
 
+Цитировать сообщение
Владимир
сообщение 5.2.2013, 8:54
Сообщение #5


Участник
**

Группа: Пользователи
Сообщений: 11
Регистрация: 15.1.2013
Пользователь №: 263

Город:Тольятти
Должность:ИТР



Хотелось бы видеть отчет по номерам телефонов, т.е по номерам телефонов которые звонили но по ним не было отзвона и/или смс. Пример: захожу в отчет забиваю смену 01.01.13 по 01.01.13 время с 08.00 по 23.59 и вижу все номера телефонов которые звонили в диспетчерскую, но по ним не был введен документ "заказ", не было автоматического отзвона/смс оповещения.
Как можно такой отчет сделать ?
Перейти в начало страницы
 
+Цитировать сообщение
директор
сообщение 5.2.2013, 14:20
Сообщение #6


Активный участник
***

Группа: Пользователи
Сообщений: 40
Регистрация: 15.11.2012
Из: Новороссийск
Пользователь №: 246

Город:Новороссийск
Должность:Директор



Часто есть необходимость посмотреть сколько машин было на линии за прошедшую неделю или месяц. Вид отчета примерно такой:

день | кол-во бортов |
---------------------------
пн | 44
вт | 50
ср | 49
...
и т.д.
Перейти в начало страницы
 
+Цитировать сообщение
GosTaxi
сообщение 6.2.2013, 4:19
Сообщение #7


Активный участник
***

Группа: Пользователи
Сообщений: 156
Регистрация: 27.6.2012
Из: Иркутская обл. г.Братск
Пользователь №: 197

Город:Братск
Должность:Директор



Возможно ли создать SQL запрос.. который будет назначать БАН, водителям которые не выходили на линию, более чем N суток ?
Перейти в начало страницы
 
+Цитировать сообщение
Rostislavoff
сообщение 6.2.2013, 4:22
Сообщение #8


Активный участник
***

Группа: Пользователи
Сообщений: 37
Регистрация: 14.11.2011
Из: Томск
Пользователь №: 147

Город:Томск
Должность:Директор



Один из самых важных отчетов - по клиентам (ездили - перестали ездить) и (не было - начали ездить). ИМХО.
Перейти в начало страницы
 
+Цитировать сообщение
MAXIMA TAXI
сообщение 6.2.2013, 13:21
Сообщение #9


Активный участник
***

Группа: MAXIMA GROUP admins
Сообщений: 1374
Регистрация: 9.11.2010
Пользователь №: 21
Должность:Директор



Цитата(Владимир @ 5.2.2013, 9:54) *
Хотелось бы видеть отчет по номерам телефонов, т.е по номерам телефонов которые звонили но по ним не было отзвона и/или смс. Пример: захожу в отчет забиваю смену 01.01.13 по 01.01.13 время с 08.00 по 23.59 и вижу все номера телефонов которые звонили в диспетчерскую, но по ним не был введен документ "заказ", не было автоматического отзвона/смс оповещения.
Как можно такой отчет сделать ?

У Вас же есть возможность просмотреть заказы в архиве заказов со статусом "Создание отменено". Это как раз те заказы, которые были автоматически открыты при звонке и которые не были созданы, а которые были закрыты по нажатию на кнопку "Отмена".

Если этот функционал не устраивает, то подробнее опишите что нужно и для чего это нужно.


--------------------
MAXIMA TAXI - Технологии Вашего превосходства
www.telemaxima.ru
Перейти в начало страницы
 
+Цитировать сообщение
MAXIMA TAXI
сообщение 6.2.2013, 13:24
Сообщение #10


Активный участник
***

Группа: MAXIMA GROUP admins
Сообщений: 1374
Регистрация: 9.11.2010
Пользователь №: 21
Должность:Директор



Цитата(директор @ 5.2.2013, 15:20) *
Часто есть необходимость посмотреть сколько машин было на линии за прошедшую неделю или месяц. Вид отчета примерно такой:

день | кол-во бортов |
---------------------------
пн | 44
вт | 50
ср | 49
...
и т.д.

Есть отчет в разделе аналитики: процентное соотношение бортов и заказов по районам с разбивкой по времени.

Ну а данный отчет в планы забьем.


--------------------
MAXIMA TAXI - Технологии Вашего превосходства
www.telemaxima.ru
Перейти в начало страницы
 
+Цитировать сообщение
MAXIMA TAXI
сообщение 6.2.2013, 13:28
Сообщение #11


Активный участник
***

Группа: MAXIMA GROUP admins
Сообщений: 1374
Регистрация: 9.11.2010
Пользователь №: 21
Должность:Директор



Цитата(GosTaxi @ 6.2.2013, 5:19) *
Возможно ли создать SQL запрос.. который будет назначать БАН, водителям которые не выходили на линию, более чем N суток ?

Не боитесь водителей растерять?

Может поощрять тех, кто выходит? Тем самым наказать лодырей


--------------------
MAXIMA TAXI - Технологии Вашего превосходства
www.telemaxima.ru
Перейти в начало страницы
 
+Цитировать сообщение
MAXIMA TAXI
сообщение 6.2.2013, 13:29
Сообщение #12


Активный участник
***

Группа: MAXIMA GROUP admins
Сообщений: 1374
Регистрация: 9.11.2010
Пользователь №: 21
Должность:Директор



Цитата(Rostislavoff @ 6.2.2013, 5:22) *
Один из самых важных отчетов - по клиентам (ездили - перестали ездить) и (не было - начали ездить). ИМХО.

Есть отчет в аналитике, Новые клиенты.
А по потерянным согласен, добавим.


--------------------
MAXIMA TAXI - Технологии Вашего превосходства
www.telemaxima.ru
Перейти в начало страницы
 
+Цитировать сообщение
GosTaxi
сообщение 18.2.2013, 4:28
Сообщение #13


Активный участник
***

Группа: Пользователи
Сообщений: 156
Регистрация: 27.6.2012
Из: Иркутская обл. г.Братск
Пользователь №: 197

Город:Братск
Должность:Директор



Цитата(MAXIMA TAXI @ 6.2.2013, 19:28) *
Не боитесь водителей растерять?

Может поощрять тех, кто выходит? Тем самым наказать лодырей

Все в этом мире Относительно..
запрос ставит БАН тем кто очень долго не работает.. Пряники и так работают..
Перейти в начало страницы
 
+Цитировать сообщение
Rostislavoff
сообщение 18.2.2013, 9:36
Сообщение #14


Активный участник
***

Группа: Пользователи
Сообщений: 37
Регистрация: 14.11.2011
Из: Томск
Пользователь №: 147

Город:Томск
Должность:Директор



Цитата(GosTaxi @ 18.2.2013, 8:28) *
Все в этом мире Относительно..
запрос ставит БАН тем кто очень долго не работает.. Пряники и так работают..

Согласен, заодно будут отсеиваться мертвые души. А кто захочет выйти на линию после долгого отсутствия - милости просим, через офис!
Перейти в начало страницы
 
+Цитировать сообщение
MAXIMA TAXI
сообщение 20.2.2013, 13:36
Сообщение #15


Активный участник
***

Группа: MAXIMA GROUP admins
Сообщений: 1374
Регистрация: 9.11.2010
Пользователь №: 21
Должность:Директор



Цитата(Rostislavoff @ 18.2.2013, 10:36) *
Согласен, заодно будут отсеиваться мертвые души. А кто захочет выйти на линию после долгого отсутствия - милости просим, через офис!

Давайте приобщим хотелку к одной из разновидностей кнутов. О них как раз мы и поговорим в ближайшее время, разработчик скоро переключится на кнуты и пряники. Сразу одним махом отработаем очередные "хочу". Как и обещал, как только приступим фактически, напишу на форуме и сможете еще раз написать о наиболее актуальных хотелкам по кнутам и пряникам, а мы их постараемся воплотить в жизнь в рамках разработки уже 41-й версии.


--------------------
MAXIMA TAXI - Технологии Вашего превосходства
www.telemaxima.ru
Перейти в начало страницы
 
+Цитировать сообщение
whfr
сообщение 18.3.2013, 10:07
Сообщение #16


Новичок
*

Группа: Пользователи
Сообщений: 3
Регистрация: 30.10.2012
Пользователь №: 234

Город:Саратов
Должность:ИТР



Можно ли сделать отчет средний чек + средний пробег по заказу? Или как-нибудь иначе средний пробег высчитать?
на данный момент "длина маршрута" в архиве заказов выводит практически на каждом заказе "0", хотя в глазах и ушах "общая длина маршрута" отображается корректно.
Перейти в начало страницы
 
+Цитировать сообщение
Таксомотор
сообщение 31.3.2013, 11:12
Сообщение #17


Активный участник
***

Группа: Пользователи
Сообщений: 44
Регистрация: 19.11.2012
Пользователь №: 249

Город:Бор
Должность:Директор



Максима, помогите сделать отчет по клиентам, которые есть в базе, но не пользовались нами месяц, два, три.
Перейти в начало страницы
 
+Цитировать сообщение
MAXIMA TAXI
сообщение 1.4.2013, 11:38
Сообщение #18


Активный участник
***

Группа: MAXIMA GROUP admins
Сообщений: 1374
Регистрация: 9.11.2010
Пользователь №: 21
Должность:Директор



Цитата(whfr @ 18.3.2013, 11:07) *
Можно ли сделать отчет средний чек + средний пробег по заказу? Или как-нибудь иначе средний пробег высчитать?
на данный момент "длина маршрута" в архиве заказов выводит практически на каждом заказе "0", хотя в глазах и ушах "общая длина маршрута" отображается корректно.

В архиве заказов этот столбец показывает значения только для тех заказов, при оформлении которых оператор сознательно нажал на кнопку по расчету расстояния. По сути, информация в данном столбце имеет статус «системной» и в очередной версии мы сделаем данный столбец недоступным, дабы не создавать условия для неверного трактования значений в данном столбце.

По существу вопроса:
Данные отчеты находятся в планах. Ожидайте в одной из будущих версий.


--------------------
MAXIMA TAXI - Технологии Вашего превосходства
www.telemaxima.ru
Перейти в начало страницы
 
+Цитировать сообщение
MAXIMA TAXI
сообщение 1.4.2013, 11:39
Сообщение #19


Активный участник
***

Группа: MAXIMA GROUP admins
Сообщений: 1374
Регистрация: 9.11.2010
Пользователь №: 21
Должность:Директор



Цитата(Таксомотор @ 31.3.2013, 12:12) *
Максима, помогите сделать отчет по клиентам, которые есть в базе, но не пользовались нами месяц, два, три.


--данный запрос выводит информацию по физ.лицам, которые не сделали ни одного заказа в течении указанного количества дней

ОПТИМИЗИРОВАННАЯ ВЕРСИЯ

declare @days as int = 31; --количество дней (до текущего момента), в течении которых клиент не сделал ни одного заказа
declare @id_disp as int = 2; --id диспетчерской, для которой проводим анализ

IF EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[__tmp_table_for_qwery_clients_without_orders]') AND type in (N'U'))
DROP TABLE __tmp_table_for_qwery_clients_without_orders


CREATE TABLE __tmp_table_for_qwery_clients_without_orders([id] [int], [has_orders] [int])

CREATE NONCLUSTERED INDEX
[__tmp_table_for_qwery_clients_without_orders_idx] ON [dbo].__tmp_table_for_qwery_clients_without_orders ([id] ASC)

declare @time_offset as datetime = (CURRENT_TIMESTAMP - @days)

insert into __tmp_table_for_qwery_clients_without_orders
select distinct id_client, 1
from dbo.orders o
where o.create_date_time > @time_offset
and ISNULL(o.id_client, 0) > 0
and o.id_domain = @id_disp


select n.id,
n.surname as 'Фамилия',
n.name as 'Имя',
n.patronymic 'Отчество',
dbo.fn_get_first_phone(n.id, 1) as 'Телефон по-умолчанию', dbo.fn_get_phones(n.id, 1) as 'Телефоны'

from dbo.natural_person n
left join __tmp_table_for_qwery_clients_without_orders t on t.id = n.id

where t.has_orders is null
and n.id_domain = @id_disp
order by n.id


IF EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[__tmp_table_for_qwery_clients_without_orders]') AND type in (N'U'))
DROP TABLE __tmp_table_for_qwery_clients_without_orders


--------------------
MAXIMA TAXI - Технологии Вашего превосходства
www.telemaxima.ru
Перейти в начало страницы
 
+Цитировать сообщение
Таксомотор
сообщение 2.4.2013, 10:50
Сообщение #20


Активный участник
***

Группа: Пользователи
Сообщений: 44
Регистрация: 19.11.2012
Пользователь №: 249

Город:Бор
Должность:Директор



На этот запрос выдает ошибку: Таблица "natural_person" не открыта
Перейти в начало страницы
 
+Цитировать сообщение

4 страниц V   1 2 3 > » 
Быстрый ответОтветить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 25.8.2019, 22:58
+7 (495) 374-00-47
Рассчитать стоимость