|
Вопрос про выборку по кварталам!!!
|
|||
---|---|---|---|
#18+
Есть реляционная база данных с кучей таблиц и связями между ними. Необходимо в отчете (запросе) сделать выборку сумм по кварталам. Access предлагает в отчете вертикальную развертку, но это неудобно при сгруппированных данных в данном примере. В перекрестном запросе выборку делает как надо, но только суммы, а необходимо еще и другие параметры из этой базы, и при том если сумм не было в данном квартале, он не выводит этот квартал, а необходимо чтоб были хотя бы нули. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2002, 05:57 |
|
Вопрос про выборку по кварталам!!!
|
|||
---|---|---|---|
#18+
это удобно делать в хранимой процедуре с под. запросами если хочешь выложу пример ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2002, 10:33 |
|
Вопрос про выборку по кварталам!!!
|
|||
---|---|---|---|
#18+
может не очень красиво но принцип понять можно в качестве параметра процедура исполнение бюджета подразделения исх данные - таблица бюджет (значения поквартально дата- дата начала периода, значение, ид_департамента) таблица raspred - распределение расходов (дата, сумма_распределенного,ид_департамента) вх. параметры: получаем идентификатор департамента и отчетный год определяем 4 периода - кварталы года главным запросом выбираем статьи бюджета по периодам за год, подчиненными вычисляем промежуточные значения ALTER PROCEDURE isp_bug_findep_year @year char(4) , @id_findep int AS declare @1from datetime declare @1to datetime declare @2from datetime declare @2to datetime declare @3from datetime declare @3to datetime declare @4from datetime declare @4to datetime set @1from= convert (datetime,'01.01.' + @year ,104) set @1to= convert (datetime,'31.03.' + @year ,104) set @2from= convert (datetime,'01.04.' + @year ,104) set @2to= convert (datetime,'30.06.' + @year ,104) set @3from= convert (datetime,'01.07.' + @year ,104) set @3to= convert (datetime,'30.09.' + @year ,104) set @4from= convert (datetime,'01.10.' + @year ,104) set @4to= convert (datetime,'31.12.' + @year ,104) SELECT strash.sname, all_bug.id_findep, strash.id_razdel, strash.dohod,strash.namestrash, all_bug.id_strash, all_bug.value as value1, (SELECT q.value FROM all_bug as q WHERE (q.data_from = @2from) AND (q.data_to = @2to) and (all_bug.id_strash=q.id_strash) and (q.id_findep=@id_findep)) as value2, (SELECT w.value FROM all_bug as w WHERE (w.data_from = @3from) AND (w.data_to = @3to) and (all_bug.id_strash=w.id_strash) and (w.id_findep=@id_findep)) as value3, (SELECT e.value FROM all_bug as e WHERE (e.data_from = @4from) AND (e.data_to = @4to) and (all_bug.id_strash=e.id_strash) and (e.id_findep=@id_findep)) as value4, (SELECT sum(r.value) FROM all_bug as r where (r.data_from >= @1from) AND (r.data_to <= @4to) and (all_bug.id_strash=r.id_strash) and (r.id_findep=@id_findep)) as value5, (select isnull(sum (summa),0) from all_raspred as rsp1 where (rsp1.dataplat >= @1from ) and (rsp1.dataplat < @2from ) and (rsp1.id_findep=@id_findep) and (rsp1.id_strash=all_bug.id_strash)) as rash1, (select isnull(sum (summa),0) from all_raspred as rsp2 where (rsp2.dataplat >= @2from ) and (rsp2.dataplat < @3from ) and (rsp2.id_findep=@id_findep) and (rsp2.id_strash=all_bug.id_strash)) as rash2, (select isnull(sum (summa),0) from all_raspred as rsp3 where (rsp3.dataplat >= @3from ) and (rsp3.dataplat < @4from ) and (rsp3.id_findep=@id_findep) and (rsp3.id_strash=all_bug.id_strash)) as rash3, (select isnull(sum (summa),0) from all_raspred as rsp4 where (rsp4.dataplat >= @4from ) and (rsp4.dataplat< @4to ) and (rsp4.id_findep=@id_findep) and (rsp4.id_strash=all_bug.id_strash)) as rash4, (select isnull(sum (summa),0) from all_raspred as rsp5 where (rsp5.dataplat >= @1from ) and (rsp5.dataplat < @4to ) and (rsp5.id_findep=@id_findep) and (rsp5.id_strash=all_bug.id_strash)) as rash5 FROM all_bug INNER JOIN strash ON all_bug.id_strash = strash.idstrash WHERE (all_bug.data_from = @1from) AND (all_bug.data_to = @1to) and (all_bug.id_findep=@id_findep) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2002, 11:55 |
|
Вопрос про выборку по кварталам!!!
|
|||
---|---|---|---|
#18+
АлексейК! Выложив данную процедуру, Вы успешно прошли тест на пригодность к пребыванию в нашей клинике "Просто треп". Милости просим! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2002, 12:31 |
|
Вопрос про выборку по кварталам!!!
|
|||
---|---|---|---|
#18+
2 rattail наверняка Вы можете предложтить более красивое решение ... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2002, 12:54 |
|
Вопрос про выборку по кварталам!!!
|
|||
---|---|---|---|
#18+
Пишем следующий запрос и радуемся жизни. Код: plaintext 1. 2. 3.
это на один год, если нужно два, то ставится соответствующее условие, если нужно еще какие то данные, то выводим их на экран... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2002, 14:23 |
|
Вопрос про выборку по кварталам!!!
|
|||
---|---|---|---|
#18+
АлексейК! Не обижайтесь - процедура у вас чудесная, никто не спорит. Но вопрос-то был чисто по Аксессу (даже не адп). Приглашение не отменяю. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2002, 15:06 |
|
Вопрос про выборку по кварталам!!!
|
|||
---|---|---|---|
#18+
rattail вы правы ... процедура здесь не совсем по теме... и с format "q" гораздо симпатичнее ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2002, 15:17 |
|
Вопрос про выборку по кварталам!!!
|
|||
---|---|---|---|
#18+
Всем, особенно SFX огромное спасибо, очень помогло!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2002, 05:02 |
|
Вопрос про выборку по кварталам!!!
|
|||
---|---|---|---|
#18+
Если тебе позволяют ресурсы компьютера то попробуй создать запрос многие-ко-многим: ето чистый акксесс. Правда долго работает, но надёжно(проверено). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2002, 19:13 |
|
Вопрос про выборку по кварталам!!!
|
|||
---|---|---|---|
#18+
Если вид перекрестного запроса устраивает и надо чтобы появлялись столбцы с "пустыми кварталами", можно прописать названия колонок в свойстве "заголовки столбцов" в свойствах перекрестного запроса. Это чуть легче чем вариант SFX. Ну или соответственно вариант с IIF как сказано выше. Руслан. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2002, 14:19 |
|
|
start [/forum/topic.php?fid=45&fpage=1849&tid=1683360]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 167ms |
0 / 0 |