Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Итоговые суммы в заголовках группы  [new]
BBelladoNNa
Member

Откуда:
Сообщений: 6
Здравствуйте, уважаемые форумчане.
Прошу вашей помощи!
В результате предыдущего запроса у меня получилась таблица со следующей структурой:


Name | Parent_Id | Sum1 | Sum2 | Sum3 | Sum4 | ….

Подразделение1 2 100 200 300 100
Подразделение2 2 200 200 100 50
Подразделение3 3 300 400 100 200
…….
ПодразделениеN 2 300 200 100 50
Где Parent_Id - ссылка на родительское подразделение (Организация) а таблице group:

Id | Name | Parent_Id

1 Организация1 null
2 Организация2 null
3 Организация3 null
4 Подразделение1 2
………
В результате нужно получить

Name | Sum1 | Sum2 | Sum3 | Sum4 | ….

Организация2 Итог Итог Итог Итог
Подразделение1 100 200 300 100
Подразделение2 200 200 100 50
……
Организация3 Итог Итог Итог Итог
Подразделение3 300 400 100 200

То есть итоговые суммы должны быть в заголовках группы.
19 дек 13, 10:07    [15315492]     Ответить | Цитировать Сообщить модератору
 Re: Итоговые суммы в заголовках группы  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
Вы в своей отчетной системе посмотрите как делается группировка. Группируйте по родительской организации, а так эта задача не для sql сервера.
19 дек 13, 10:10    [15315524]     Ответить | Цитировать Сообщить модератору
 Re: Итоговые суммы в заголовках группы  [new]
Glory
Member

Откуда:
Сообщений: 104760
BBelladoNNa
То есть итоговые суммы должны быть в заголовках группы.

JOIN + WITH ROLLUP
19 дек 13, 10:13    [15315553]     Ответить | Цитировать Сообщить модератору
 Re: Итоговые суммы в заголовках группы  [new]
BBelladoNNa
Member

Откуда:
Сообщений: 6
Glory, WITH ROLLUP выводит итоговую сумму в конце группы, а нужно в заголовке.
19 дек 13, 16:00    [15318585]     Ответить | Цитировать Сообщить модератору
 Re: Итоговые суммы в заголовках группы  [new]
Glory
Member

Откуда:
Сообщений: 104760
BBelladoNNa
WITH ROLLUP выводит итоговую сумму в конце группы, а нужно в заголовке.

ORDER BY придумали специально для упорядочивания реузльтатов
19 дек 13, 16:57    [15319046]     Ответить | Цитировать Сообщить модератору
 Re: Итоговые суммы в заголовках группы  [new]
BBelladoNNa
Member

Откуда:
Сообщений: 6
Glory, Спасибо за ликбез.
но Order by здесь никак помочь не может, если, конечно, вы не приведете конкретный пример.

Нужна вертикальная иерархия: Организация -->Подчиненные подразделения (организаций много), и общая сумма по подразделениям в заголовке группы - напротив организации.
Пока у меня получается только:

Name Sum1
Организация1

Подразделение11 10
Подразделение12 20
.....
Подразделение1N 30
Итог
Организация2

Подразделение21 10
Подразделение22 20
Итог
20 дек 13, 09:24    [15321382]     Ответить | Цитировать Сообщить модератору
 Re: Итоговые суммы в заголовках группы  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2396
BBelladoNNa,

https://www.sql.ru/forum/127456/rekomendacii-po-oformleniu-soobshheniy-v-forume
4,6
20 дек 13, 09:55    [15321506]     Ответить | Цитировать Сообщить модератору
 Re: Итоговые суммы в заголовках группы  [new]
kalakhary
Member

Откуда:
Сообщений: 17
create table #t1(Name varchar(255), Parent_Id int, Sum1 money, Sum2 money, Sum3 money, Sum4 money)
insert into #t1 values('Подразделение1', 2, 100, 200, 300, 100)
insert into #t1 values('Подразделение2', 2, 200, 200, 100, 50)
insert into #t1 values('Подразделение3', 3, 300, 400, 100, 200)

create table #p1(id int, name varchar(255), parent_id int)
insert into #p1 values(1, 'Организация1', null)
insert into #p1 values(2, 'Организация2', null)
insert into #p1 values(3, 'Организация3', null)
insert into #p1 values(4, 'Подразделение1', 2)

select #t1.*, #p1.name as name_gr
into #rez
from #t1 left join #p1 on #t1.parent_id = #p1.id

select *, 0 as ord from #t1
union all 
select  name_gr, parent_id, sum(sum1), sum(sum2), sum(sum3), sum(sum4), 1
from #rez
group by parent_id, name_gr with rollup
having(grouping(name_gr)=0)
order by parent_id, ord desc

drop table #t1
drop table #p1
drop table #rez
20 дек 13, 10:01    [15321532]     Ответить | Цитировать Сообщить модератору
 Re: Итоговые суммы в заголовках группы  [new]
BBelladoNNa
Member

Откуда:
Сообщений: 6
kalakhary, Благодарю!
20 дек 13, 10:07    [15321564]     Ответить | Цитировать Сообщить модератору
 Re: Итоговые суммы в заголовках группы  [new]
Glory
Member

Откуда:
Сообщений: 104760
BBelladoNNa
но Order by здесь никак помочь не может,

Особенно если его не писать в тексте запроса
20 дек 13, 10:09    [15321575]     Ответить | Цитировать Сообщить модератору
 Re: Итоговые суммы в заголовках группы  [new]
BBelladoNNa
Member

Откуда:
Сообщений: 6
kalakhary, еще раз спасибо! переделала под себя - работает!
20 дек 13, 10:50    [15321801]     Ответить | Цитировать Сообщить модератору
 Re: Итоговые суммы в заголовках группы  [new]
BBelladoNNa
Member

Откуда:
Сообщений: 6
Glory, я просила помощи, а не язвительных замечаний.
20 дек 13, 10:51    [15321808]     Ответить | Цитировать Сообщить модератору
 Re: Итоговые суммы в заголовках группы  [new]
Glory
Member

Откуда:
Сообщений: 104760
BBelladoNNa
Glory, я просила помощи, а не язвительных замечаний.

Офигеть. Совет использовать ORDER BY - это не помощь ???
20 дек 13, 10:54    [15321822]     Ответить | Цитировать Сообщить модератору
 Re: Итоговые суммы в заголовках группы  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33930
Блог
BBelladoNNa,

как уже сказали, это нужно делать в отчетной системе и ее средствами,
зачем изобретать велосипед
20 дек 13, 11:02    [15321851]     Ответить | Цитировать Сообщить модератору
 Re: Итоговые суммы в заголовках группы  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2396
BBelladoNNa
Glory, я просила помощи, а не язвительных замечаний.


https://www.sql.ru/forum/941371/studentam-zhelaushhim-pomoshhi
20 дек 13, 16:00    [15324097]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить