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

нид хелп по группировкам

Добавлено: 15 апр 2004, 14:49
anykey
Соратники!!! Наше время настало...бла бла бла... Кароче очень нужно получить консультацию. Очень. Стоит задача такая: нужно сгруппировать данные вначале по группам МЦ а там еще сгруппировать по месяцам и выводить денежку. По отдельности группировать (только по группам или только по месяцам) я научился, а вот чтобы так не могу чота. Нид хелп и свежый взляд, а то мой уже помутнел. Вот вьюва (тока не смейтесь плиз)
.ard
.create view vXXX as
select
katmc.kgroupmc,
basedoc.dform,
spstep.summa
from
katmc,
basedoc,
spstep
where
((
word( 2 ) == Pick.wList and
katmc.cgroupmc /== pick.crec and
spstep.cmcusl /== katmc.nrec and
word( 1 ) == spstep.prmc and
stepdoc.nrec /== spstep.cstepdoc and
basedoc.nrec /== stepdoc.cbasedoc and
word( 201) == basedoc.viddoc and
word( 2 ) == basedoc.status
))and Start <= basedoc.dform
and Finish > basedoc.dform
and basedoc.descr = 'SAL'
order by katmc.kgroupmc, basedoc.dform;

Спасибо за внимание.

Re: нид хелп по группировкам

Добавлено: 15 апр 2004, 16:29
ApachiA
Выгружай все данные в ексель :) хай там потом сводят как хотят!!!


Я всегда так делаю :) ну или почти всегда

Re: нид хелп по группировкам

Добавлено: 15 апр 2004, 18:01
Vitas
Собирай данные в таблицах памяти и групируй их там как душе угодно, подготавливай для выгрузки в отчет в том виде, в котором они тебе нужны и выгружай

Re: нид хелп по группировкам

Добавлено: 15 апр 2004, 18:17
anykey
их, они враги кароче, такой вариант не устраивает это раз, во-вторых я не умею такие вещи делать, эх.

Re: нид хелп по группировкам

Добавлено: 15 апр 2004, 18:33
anykey
ммммммммм, интересна-интересна, мысль о промежуточной обработке данных между сбором и выводом посещала меня с утра, но, тут есть большое но, я пока не очень опытен и литературы тоже почти нет в наличии.
Не подскажыте ли какиеньть полезные сцылочки (на udaff.com ходил, там нету) или сами расскажете что это такое таблицы памяти и как с ними работать, чувствую в них заложен глубокай смысл и потенциал...

Да, спасибо за участие, это так ... трогательно, спасибо.

Re: нид хелп по группировкам

Добавлено: 15 апр 2004, 18:56
m0p3e
interface MyFace;

table struct MyTable
(
nrec : comp
,MyString : string
,MyDouble : double
)
with index
(
MyTable00 = MyString
)
;

Дальше работаешь как с любой другой таблицей, но очень быстро... :)

Re: нид хелп по группировкам

Добавлено: 15 апр 2004, 19:59
ecasoft
create view vXXX as
select
katmc.kgroupmc,
basedoc.ddoc,
spstep.summa
from
katmc,
basedoc,
spstep
where
((

!---Выбрали все ДО нужнго типа в заданном интервале используя индекс и узловое условие--------------------------------
word( 201) == basedoc.viddoc and
word( 2 ) == basedoc.status
Start <<= BaseDoc.dDoc and
Finish >> BaseDoc.dDoc and
(basedoc.descr = 'SAL') and
basedoc.nrec == stepdoc.cbasedoc and
!----Получили все позиции спецификации ДО, которые относятся к выбранной группе.
!---------------------------------------
word( 2 ) == Pick.wList and
word( 1 ) == spstep.prmc and
stepdoc.nrec == spstep.cstepdoc and
(
(pick.crec = katmc.cgroupmc)
) and

spstep.cmcusl = katmc.nrec and

));

Цикл по таблице PIck - это по группам МЦ цикл. В нем цикл по всем ДО и далее по всем spstep. Никаких ордеров(порядков) не надо задавать.
Правда не будет порядка по кодам групп, как хотел. Если хочешь порядок по группам, то надо идти уже по каталогу групп и искать каждую в Pick и выводить по ней все.

В запросе максимально используются имеющиеся индексы таблиц, чтобы ускорить работу.

Не проверял работу...писал тут сразу :)

По поводу запроса описанного выше - непонятно чего получить хотелось..все равно суммировать не будет по группам сразу...без подсчета в цикле. Да и сразу в одном SQL чтобы и сортировку получить - это будет все равно работать только на внешней выгрузке..работает долго на таких больших таблицах, как spstep.

Re: нид хелп по группировкам

Добавлено: 16 апр 2004, 12:23
anykey
Первоначальный вариант мой схож с этим, за исключением того что некоторые вещи обрезались вне (( )), но почему то когда начинается выборка с ДО отчет работает крайне долго, честно говоря я так ни разу и не дождался окончания. А вот вариант, который в вопросе работает за несколько минут (выборка за год). Все хорошо за исключением того, что я не могу разрулить цыклы, как и что группировать. Синтаксис меня мучает.

.{по группам
!--вывод названия группы
.{по месяцам
!--вывод месяца
.begin
MySumm := 0;
end.
.{по спецификациям
.begin
MySumm := MySumm + spstep.summa;
end.
.}//по спецификациям
!--вывод MySumm
.}//по месяцам
.}//по группам

Как оформить синтаксически такую обработку?

Re: нид хелп по группировкам

Добавлено: 19 апр 2004, 15:21
Maverick
Ребят а иерархические отчеты не пробовали раскручивать?
Оченно интересно и пользительно )))
попробуйте ))) - там внутренний объект на пасквиле строит деревья в нужном разрезе с нужными подитогами и протчая, протчая, протчая...
Описалово как работать с этими объектами могу намылить

Re: нид хелп по группировкам

Добавлено: 19 апр 2004, 16:24
St.Anislav
можно мне описание на stanislav@intell.ru?

Re: нид хелп по группировкам

Добавлено: 19 апр 2004, 16:55
Maverick
2 St.Anislav
Ушло

Re: нид хелп по группировкам

Добавлено: 19 апр 2004, 17:05
Spvl
А через Excel получается очень быстро и красиво с группировками любой сложности
И писать очень просто.
Из формы отправляем в Эксель только исходные данные. А после запускаем в Екселе макрос.
Макрос записывается заранее.

Ну очень удобно. Я практически все отчеты так делаю. Если нужны примеры могу выдать и расказать.

Re: нид хелп по группировкам

Добавлено: 19 апр 2004, 17:21
Deinis
Маверик, а мне не перешлешь?
Denisooo@yandex.ru
Очень интересная штука. Когда начал разгребать из чего состоят интерактивные отчеты (таблицы, связи) - с тех пор думаю, как это дело повторить в своем фейсе
:)

Re: нид хелп по группировкам

Добавлено: 19 апр 2004, 19:11
anykey
О, было бы очень кстати, примеры да с камментами самое милое дело для начинающих.

Адресочек tuhel@yandex.ru

Re: нид хелп по группировкам

Добавлено: 19 апр 2004, 19:14
anykey
Гражданин Maverick!!!
Буду рад любой литературе...
Не затруднит ли Вас на вот такой адресочек замылить tuhel@yandex.ru