Создание отчёта

Общие вопросы по работе с программой
Пользователь
Сообщения: 10
Зарегистрирован: 09 окт 2012, 12:28

Создание отчёта

Сообщение Илья » 09 окт 2012, 12:54

Можно ли создать отчет, когда нужно подсчитать количество рабочих с, например, высшим образованием или замужем?

За ранее благодарен за ответ.

Администратор
Аватара пользователя
Сообщения: 518
Зарегистрирован: 26 янв 2012, 11:22

Re: Создание отчёта

Сообщение Администратор » 09 окт 2012, 13:39

Добрый день!

Можно.
Для этого необходимо знание языка запросов SQL, который позволит создавать в программе более сложные отчеты.
Вот пример отчета "Количество сотрудников, состоящих в браке".

Как это сделать?!
Создается простой отчет, а в окне "Просмотр и редактирование SQL-запроса" нужно изменить стандартный запрос на тот, который Вам необходим. Важно соблюдать количество полей, которые будут выведены в отчете. Если нужно 2 столбца, то в мастере отчетов нужно указать количество полей =2. Можно выбрать любые поля.
У вас нет доступа для просмотра вложений в этом сообщении.

Пользователь
Сообщения: 10
Зарегистрирован: 09 окт 2012, 12:28

Re: Создание отчёта

Сообщение Илья » 09 окт 2012, 14:23

Спасибо! Ваш пример очень пригодился!

Пользователь
Сообщения: 10
Зарегистрирован: 09 окт 2012, 12:28

Re: Создание отчёта

Сообщение Илья » 19 дек 2012, 17:17

Добрый день!

Нужно вывести в отчет сотрудников, которым выполнилось полных, в интервале от 20 до 30 лет.
Я так понимаю, чтобы сформировать отчет, нужно 2 колонки - ФИО и День рождения.
День рождение задаю с двумя условиями. Первое, дата больше и 01.01.1990. Второе - меньше 01.01.1982.
Код: Выделить всё
select "PEOPLE"."Фамилия"||' '||"PEOPLE"."Имя"||' '||"PEOPLE"."Отчество" as p1, "PEOPLE"."ДатаРождения" as p2
 from "PEOPLE"
 where
(("PEOPLE"."ДатаРождения" > '01.01.1990')
 and  ("PEOPLE"."ДатаРождения" < '01.01.1982'))
 


Жму вывести отчет, пустой лист с заголовками столбцов.
Посоветуйте, что я делаю не так

Администратор
Аватара пользователя
Сообщения: 518
Зарегистрирован: 26 янв 2012, 11:22

Re: Создание отчёта

Сообщение Администратор » 19 дек 2012, 17:32

Добрый день!

Вам нужен интервал с 82-го по 90-й? Или наоборот, те кто моложе 20 и старше 30?
Если первое, тогда:

(("PEOPLE"."ДатаРождения" > '01.01.1982')
and ("PEOPLE"."ДатаРождения" < '01.01.1990'))

Пользователь
Сообщения: 10
Зарегистрирован: 09 окт 2012, 12:28

Re: Создание отчёта

Сообщение Илья » 20 дек 2012, 10:34

Да, Вы правы, все получилось!

А можно в отчете вывести номер по порядку строк?
Функция count не работает с датами?

Администратор
Аватара пользователя
Сообщения: 518
Зарегистрирован: 26 янв 2012, 11:22

Re: Создание отчёта

Сообщение Администратор » 20 дек 2012, 10:58

Можно попробовать так:
Сделайте 3 поля.
1-е любое (например, ФИО), 2-е - ФИО, 3-е - Дата рождения.
Затем замените запрос этим:

select

(
select count(1)
from "PEOPLE" t1
where (t1."Фамилия" <= "PEOPLE"."Фамилия")
and
((t1."ДатаРождения" > '01.01.1982')
and (t1."ДатаРождения" < '01.01.1990'))


) as p1,


"PEOPLE"."Фамилия"||' '||"PEOPLE"."Имя"||' '||"PEOPLE"."Отчество" as p2, "PEOPLE"."ДатаРождения" as p3
from "PEOPLE"
where
(("PEOPLE"."ДатаРождения" > '01.01.1982')
and ("PEOPLE"."ДатаРождения" < '01.01.1990'))

order by p1



Напишите о результате, пожалуйста.

Пользователь
Сообщения: 10
Зарегистрирован: 09 окт 2012, 12:28

Re: Создание отчёта

Сообщение Илья » 20 дек 2012, 11:18

Все работает. Класс!

Только если есть одинаковые фамилии, номерует одинаково, но счет не сбивается.
Например:
S4et.JPG
У вас нет доступа для просмотра вложений в этом сообщении.

Администратор
Аватара пользователя
Сообщения: 518
Зарегистрирован: 26 янв 2012, 11:22

Re: Создание отчёта

Сообщение Администратор » 20 дек 2012, 11:42

Тогда так:

select

(
select count(1)
from "PEOPLE" t1
where (t1."Фамилия"||' '||t1."Имя"||' '||t1."Отчество" <= "PEOPLE"."Фамилия"||' '||"PEOPLE"."Имя"||' '||"PEOPLE"."Отчество")
and
((t1."ДатаРождения" > '01.01.1982')
and (t1."ДатаРождения" < '01.01.1990'))


) as p1,


"PEOPLE"."Фамилия"||' '||"PEOPLE"."Имя"||' '||"PEOPLE"."Отчество" as p2, "PEOPLE"."ДатаРождения" as p3
from "PEOPLE"
where
(("PEOPLE"."ДатаРождения" > '01.01.1982')
and ("PEOPLE"."ДатаРождения" < '01.01.1990'))

order by p1

Пользователь
Сообщения: 10
Зарегистрирован: 09 окт 2012, 12:28

Re: Создание отчёта

Сообщение Илья » 20 дек 2012, 11:57

Вообще класс! Спасибо

След.

Вернуться в Работа с программой

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3