Примечание. При вставке примеров в окно конструктора звёздочки вставлять не нужно.
Средняя цена по районам.
Каким образом можно узнавать среднюю цену по районам города?
*****************************************************************
SELECT AVG(A.PRICE), r.name from APART A
LEFT JOIN REGIONS R ON (r.ID = a.ID_REGION)
group by 2
*****************************************************************
Ещё один вариант этого запроса, более расширенный. С русскими названиями столбцов:
*******************************************************************
SELECT AVG(A.PRICE) as "Средняя цена", r.name as "Район" from APART A
LEFT JOIN REGIONS R ON (r.ID = a.ID_REGION)
group by 2
*******************************************************************
Ещё один вариант этого запроса, более расширенный. Средняя цена разбита не только по районам, но и по количеству комнат. С русскими названиями столбцов.
*******************************************************************
SELECT AVG(A.PRICE) as "Средняя цена", r.name as "Район", a.ROOMS_Q as "Кол-во комнат" from APART A
LEFT JOIN REGIONS R ON (r.ID = a.ID_REGION)
group by 2,3
*******************************************************************
Ещё один вариант этого запроса, более расширенный. Средняя цена разбита не только по районам, но и по количеству комнат. Выполнена сортировка по районам. С русскими названиями столбцов.
*******************************************************************
SELECT AVG(A.PRICE) as "Средняя цена", r.name as "Район", a.ROOMS_Q as "Кол-во комнат" from APART A
LEFT JOIN REGIONS R ON (r.ID = a.ID_REGION)
group by 2,3
order by 2
*******************************************************************
Определить среднюю цену по комнатам.
***********************************************************
SELECT AVG(A.PRICE) as "Средняя цена", a.ROOMS_Q as "Кол-во комнат" from APART A group by 2
***********************************************************
Определить среднюю цену по районам с количеством объектов в каждой группе.
***********************************************************
SELECT AVG(A.PRICE) as "Средняя цена", r.name as "Район", a.ROOMS_Q as "Кол-во комнат", COUNT(a.ID) AS "Количество объектов" from APART A
LEFT JOIN REGIONS R ON (r.ID = a.ID_REGION)
group by 2, 3
***********************************************************
Определить среднюю цену по районам только Квартир. Дома, новостройки, участки в расчёт не берём.
Это более сложно.
1. Создаём предварительно специальную процедуру в базе, которая поможет нам будущем. Т.е. это нужно сделать 1 раз. Откройте меню Сервис/Выполнить скрипт, вставьте туда текст ниже между ****** и нажмите Выполнить.
**********************************************************
SET TERM ^ ;
create or alter procedure SP_TYPES_RECURSIVE (
ANID integer,
SELF integer,
ID_SUPERTYPE integer)
returns (
ID integer)
as
BEGIN
If (ID_SUPERTYPE = -1) Then
begin
select id from types t where t.SUPERTYPE = :ID_SUPERTYPE into :ANID;
ID_SUPERTYPE = -1;
end
IF (Self = 0) THEN
BEGIN
ID = :AnID;
SUSPEND;
END
FOR SELECT id FROM TYPES
WHERE parent = :anid INTO :ID
DO begin
SUSPEND;
FOR SELECT id FROM SP_TYPES_RECURSIVE(:ID, 1, :ID_SUPERTYPE) INTO :ID
DO SUSPEND;
end
END^
SET TERM ; ^
**********************************************************
Выше - это скрипт создания процедуры. Его нужно выполнить в программе. Выделите Код мышкой и нажмите на клавиатуре сочетание Ctrl+C. Вставьте курсор в редактор скриптов и нажмите Ctrl+V. Как выполнить скрипт, читаем здесь.
Этот скрипт требуется выполнить один раз, т.к. он создаст процедуру, которая навсегда останется в базе.
2. Как только скрипт будет успешно выполнен, откройте конструктор данных.
3. Для начала требуется узнать "главный" ID типа квартир. Выполните следующий код
4. В верхнее окно вставьте следующий код:
***********************************************************
SELECT
AVG(A.PRICE) as "Средняя цена",
r.name as "Район",
a.ROOMS_Q as "Кол-во комнат",
tt1.NAME AS "Тип",
COUNT(a.ID) AS "Количество объектов"
from APART A
LEFT JOIN REGIONS R ON (r.ID = a.ID_REGION)
LEFT JOIN TYPES tt1 ON (tt1.ID = a.ID_TYPE)
where a.id_type in (SELECT t.id FROM TYPES t JOIN SP_TYPES_RECURSIVE (0, 0, 0) r ON t.id = r.id)
group by 2, 3, 4
***********************************************************
Статистика добавлений объектов недвижимости по пользователям и датам.
Каким образом можно узнавать сколько объектов добавил агент за месяц?
*****************************************************************
SELECT COUNT(J.ID) as "Количество", U.NAME as "Пользователь"
FROM JOURNAL J
LEFT JOIN
USERS U ON (U.ID = J.UID)
WHERE
J.DATE_TIME >= '01.10.2008 00:00'
AND
J.DATE_TIME <= '01.11.2008 00:00'
AND
J.TABLE_NAME = 'Кв/Дома/Ново.'
AND
J.ACT = 'ДОБАВЛЕНИЕ'
GROUP BY 2
*****************************************************************
Вот результат: за октябрь месяц 2008 года по всем пользователям и модулям дома, квартиры, новостройки
Статистика добавлений и обновлений объектов недвижимости по пользователям и датам.
Каким образом можно узнать сколько объектов добавил и обновил тот или иной пользователь?
*****************************************************************
SELECT u.name as "Пользователь",
( select count(j1.id) from JOURNAL j1
WHERE
J1.DATE_TIME BETWEEN '01.10.2008 00:00' AND '01.11.2008 00:00'
AND
J1.TABLE_NAME = 'Аренда'
AND
J1.ACT = 'ДОБАВЛЕНИЕ'
AND
j1.UID = u.ID
) as "Добавлено",
( select count(j2.id) from JOURNAL j2
WHERE
J2.DATE_TIME BETWEEN '01.10.2008 00:00' AND '01.11.2008 00:00'
AND
J2.TABLE_NAME = 'Аренда'
AND
J2.ACT = 'ОБНОВЛЕНИЕ'
AND
j2.UID = u.ID
) as "Обновлено"
from users u
*****************************************************************
или так:
*****************************************************************
SELECT U.NAME as "Пользователь",
sum (case when J.ACT = 'ДОБАВЛЕНИЕ' then 1 else 0 end) as "Добавлено",
sum (case when J.ACT = 'ОБНОВЛЕНИЕ' then 1 else 0 end) as "Обновлено"
FROM JOURNAL J
LEFT JOIN USERS U ON (U.ID = J.UID)
WHERE
J.DATE_TIME >= '01.10.2008 00:00'
AND
J.DATE_TIME <= '01.11.2008 00:00'
AND
J.TABLE_NAME = 'Аренда'
GROUP BY 1
ORDER BY 1
*****************************************************************
Вот результаты:
см. также
Описание Конструктора данных >>
В программу по недвижимости "Квартал ПРО" встроен конструктор данных на основе SQL-запросов. Для его вызова воспользуйтесь меню "Сервис->Конструктор данных".
Перед Вами откроется окно конструктора, разделённое на две части. В верхнюю часть можно вводить запросы на языке SQL (Firebird).
Введите (вставте) текст запроса в верхнее окно или выберите готовый профиль. И нажмите кнопку Выполнить. В нижней части получите результат. Профиль с запросов можно сохранять для использования в дальнейшем. Результат можно распечатать или экспортировать в разные форматы.
См. также.
Примеры для Конструктора данных >>
Если хотите использовать кириллические названия столбцов, то следует их обрамлять в двойные кавычки:
SELECT id as "Код", price as "Цена", phones_list as "Телефоны" FROM apart
На формах поиска Квартир, Домов и Новостроек есть возможность перенести объекты из одного модуля программы в другой, т.е. изменить не только тип объекта недвижимости, но и Супертип. Супертип объекта - это модуль программы: квартиры, дома, заявки, покупатели и т.д. Но Супертипы для переноса должны быть совместимы. Т.е. из квартир в заявки перенести нельзя. Например, можно перенести объекты недвижимости из модуля Квартиры в модуль Новостройки или наоборот.
Пример.
Откройте форму поиска квартир (меню Квартиры/Поиск квартир). Выполните поиск нужных квартир.
В таблице результатов поиска выделите только те квартиры, которые хотите перенести в другой модуль (изменить Супертип).
На снимке видно, что выделено 4 квартиры: 1527, 1528, 2930 и 1533.
Щёлкните по выделенному правой кнопкой мышки или выберите меню "Данные", затем пункт меню "Изменить Тип/Супертип".
Появится окно выбора.
Выберите новый модуль и новый тип.
Нажмите OK для подтверждения.
Программа изменит тип/супертип у выделенных записей.
Совет.
Перед переносом большого количества данных рекомендуется сделать резервную копию базы.
Ограничения.
Перенос объектов недвижимости можно выполнять только в пределах трёх модулей: Квартиры, Дома и Новостройки. Нельзя перенести объект недвижимости из модуля Квартиры в модуль Коммерческая недвижимости или Аренда. Также в модулях Аренда и Коммерческая недвижимость нет функции изменения типа/супертипа у выделенных записей.
Резервное копирование базы данных реализовано на случай краха операционной системы, также может быть повреждён диск, где расположена база данных.
База данных по умолчанию хранится в файле \Документы\KvartalPro4\Data\KVX.FDB
В папке \Документы\KvartalPro4\Настройки\ хранятся почти все настройки программы.
Если пользователь выполняет сложные коррекции в справочниках или какие-то опасные манипуляции с данными, как то физическое удаление данных, то также следует воспользоваться резервным копированием базы данных. Да и вообще следует выполнять резервное копирование базы данных как можно чаще, например раз в день или несколько раз в день, если пользователи работают с данными интенсивно. Копию базы не рекомендуется хранить на том же жёстком диске, на котором расположена рабочая база. У Вас всегда должна быть копия базы на флешке или перезаписываемом диске (CD/DVD), причём иногда проверяйте читабельность диска. Вся Ваша информация, собранная за время работы с Квартал ПРО, это, может быть, самое ценное в Вашей работе. Да и вообще следует хранить резервные копии ВСЕХ Ваших файлов (документы, фото и т.д.) в двух экземплярах.
Для архивирования или восстановления базы данных воспользуйтесь меню "Сервис -> Архивация/Восстановление базы данных".
Примечания
Для локальных и/или бесплатных версий программы "Квартал ПРО" резервное копирование данных можно выполнить простым копирование файла базы "KVX.FDB" или сразу всей папки "KvartalPro4".
1. Откройте Проводник Windows или любой другой файловый менеджер, например, Total Commander или FAR.
2. Зайдите в папку "Документы" (или откройте меню Пуск->Документы).
3. В этой папке вы увидите папку "KvartalPro4".
4. Закройте программы Квартал ПРО и Сканфильтр.
5. Скопируйте эту папку (KvartalPro4) на другой диск, флешку или в облако. Это и будет резервная копия данных. В папке \Документы\KvartalPro4\ хранится база и некоторые настройки программы.
Если фото хранятся в отдельной папке, то их нужно копировать отдельно.
Храните резервные копии на другом ПК, на другом диске, флешке, в облачном сервисе на случай, если вдруг основной ПК полностью выйдет из строя.
На удалённом (сетевом) клиентском ПК создайте папку, например, D:\backup_kvx\ - в неё и будете выполнять резервное копирование базы.
В эту папку скачайте и распакуйте архив >>
Файл backup.bat - текстовый (можно редактировать Блокнотом).
Откроте этот файл Блокнотом или любым другим текстовыи редактором.
Замените "имя_сервера:D:\путь_к_базе\kvx.fdb" на свои правильные атрибуты, т.е. имя и путь к базе должны совпадать с теми, что указаны в Квартал ПРО (посмотрите их в меню "Сервис/Настройки подключения к базе").
Сохраните bat-файл.
Попробуйте запустить файл backup.bat - должно начаться резервное копирование (в черном окне консоли). Если база небольшая, то резервное копирование будет выполняться совсем недолго, всего несколько секунд (5-10-15). Если окно на 1 сек. открылось и сразу закрылось, что-то пошло не так.
Через некоторое время окно консоли закроется и в папке появится файл kvx.fbk.
kvx.fbk - это и есть резервная копия базы.
Такое резервное копирование можно выполнять "на лету", т.е. не отключая клиентов от базы.
Теперь можно создать несколько копий файла backup.bat (backup12.bat - в 12 часов дня, backup18.bat - в 18 часов вечера, backup_sr.bat - среда, backup_pt.bat - пятница). Это для того, чтобы запускать эти файлы в разное время и создавать несколько независимых резервных копий.
Например, можно создавать 2-3 резерные копии в течение суток: днём и в конце рабочего дня, а также ещё 2 резервные копии в середине недели и в конце рабочей недели.
Таким образом в будущем можно восстановить любую из резервных копий. Например за среду или за вчерашний день.
Теперь каждый файл нужно поочерёдно открыть и изменить будущее имя резервной копии "kvx.fbk" на kvx12.fbk, kvx18.fbk, kvx_sr.fbk, kvx_pt.fbk.
Теперь запустите Планировщик Windows >>
В Планировщике слева вверху по пункту "Планировщик заданий" правой кнопкой и далее меню "Создать простую задачу".
Введите все параметры, выберите файл-сценарий "backup12.bat" - установите "каждый день на 12 часов дня".
Повторите создание простого задания и выберите файл-сценарий "backup18.bat" - установите "каждый день на 18 часов дня".
Повторите создание простого задания и выберите файл-сценарий "backup_sr.bat" - установите "еженедельно на среду на 18:00".
и т.д.
Частота и периодичность зависит от того, как часто меняются в базе данные. Если они меняются не часто, то и нет смысла создавать несколько независимых резервных копий.
Теперь Windows будет автоматически запускать сценарии резервного копирования и создавать файлы резервных копий.
kvx.fbk - это заархивированная (упакованная) резервная копия, которую нельзя просто так подключить к базе, её предварительно нужно будет распаковать.
Для распаковки создайте в этой же папке с помощью Блокнота текстовый файл "restore.bat" с содержимым: "gbak.exe -r -v -t -user sysdba -password masterkey kvx12.fbk kvx.fdb", т.е. распаковвать файл kvx12(или 18).fbk в полноценный файл базы kvx.fdb.
Укажите вместо "kvx.fbk" какой файл нужно распаковать (kvx12.fbk или kvx18.fbk) и запустите "restore.bat".
В итоге должен появиться файл "kvx.fdb" - это и будет восстановленная база из резервной копии.
• • • • • • • • •
© 2005-2024 Квартал ПРО - програми для нерухомості. Всі права захищені.
При використанні та поширенні інформації обов'язково вказуйте адресу джерела.
***
На сайті 610 гостей та 0 користувачів