Страница 1 из 1

Мелкий подхалимаж или как сделать Select для Шефа?

Добавлено: 26 янв 2007, 09:24
Александр
Не подскажите как сделать следующую штуку на основе ExecSQLSelect
Дано:
объект 'Запрос' у него среди прочих атрибутов есть имя исполнителя и дата
Нужно:
сделать запрос по всей базе по объектам 'Запрос' и атрибуту=имя исполнителя
В этом запросе получить 12 значений (через запятую) означающих количество обработанных сотрудником объектов за месяц
Результат:
отобразить на форме диаграму по месяцам и количеству обработанных сотрудником объектов
Для чего:
чтобы шеф нажал на кнопку - посмотрел диаграму и выписал премию, всего 2 действия - он нажал на кнопку, а ты пошел в кассу :wink:

Как правильно построить такой запрос? Можно ли использовать следующую схему

Код: Выделить всё

Select
  Select(in (найти в найденном все для января)) as январь,
  Select(in (найти в найденном все для февраля)) as февраль,
   ...  
  Select(in (найти в найденном все для декабря)) as декабрь
From ...
Where .... (найти все объекты 'запрос')
???? :roll: :roll: :roll:

Добавлено: 26 янв 2007, 09:50
Anderyt
ух ты :-)
Александр, извините, убегаю на обед, и время есть только на то, чтобы прислать запрос, который показывает число документов, находящихся в объектах определенных типов, с группировкой по месяцам:

Код: Выделить всё

select 
substring(convert(varchar, file1.cd, 104),4,7) as 'Месяц'
, count(file1.cd) as 'Всего документов'
from lsdbo.file_v file1
where
object_reference_id in
(select id
from
lsdbo.object_reference_view
where type_id
--in (5,100002686000001,6,100003626000001) -- ПСД
--in (807891382900000, 100000519200011) -- Задания
not in (100000185200011, 100000185400011) -- Документы ПИР
--in (100000185200011, 100000185400011) -- Корреспонденция
--in (100003923200458, 100006553200458, 100006553100458) --Изыскания
)

and
substring(convert(varchar, file1.cd, 104),7,4)='2006'
group by substring(convert(varchar, file1.cd, 104),4,7)
order by substring(convert(varchar, file1.cd, 104),4,7)
содержимое конечно совсем не такое, как нужно вам, но по-моему, принцип тот же..

если будут вопросы - то только после обеда ;-)