powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Хитрая группировка по дате
25 сообщений из 25, страница 1 из 1
Хитрая группировка по дате
    #32607075
It-ant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!
Помогите пожалуйста, может есть какие мысли или кто-нибудь сталкивался с подобной задачкой...
Итак
1. Есть таблица событий с полем дата события (например дата выписаного счета) и ID клиента (из справочника клиентов)
2. Хочется получить в результате запроса датасет сгруппированный по месяцам за текущий и прошлый год (развернутый горизантально)
3. И самое интересное... в текущем году некоторый клиенты могут отсутствовать (ну не платили ни разу пока...) тогда за этот год нет в результате строки с этим клиентом

Как я это делал...
1. сделал хранимку которая группирует по месяцам и клиентам



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
CREATE PROCEDURE GET_GROUP_NOTES_BY_MONTH (
    IP_BROKER INTEGER,
    IP_YEAR CHAR( 4 ))
RETURNS (
    "YEAR" INTEGER,
    NAME_FOR_DISPLAY VARCHAR( 150 ),
    CLI_ID INTEGER,
    JAN NUMERIC( 18 , 4 ),
    FEB NUMERIC( 18 , 4 ),
    MAR NUMERIC( 18 , 4 ),
    APR NUMERIC( 18 , 4 ),
    MAY NUMERIC( 18 , 4 ),
    JUN NUMERIC( 18 , 4 ),
    JUL NUMERIC( 18 , 4 ),
    AUG NUMERIC( 18 , 4 ),
    SEP NUMERIC( 18 , 4 ),
    OCT NUMERIC( 18 , 4 ),
    NOW NUMERIC( 18 , 4 ),
    "DEC" NUMERIC( 18 , 4 ))
AS
DECLARE VARIABLE PREV_YEAR CHAR( 4 );
DECLARE VARIABLE THIS_YEAR CHAR( 4 );
BEGIN
PREV_YEAR = CAST(CAST(IP_YEAR AS INTEGER) -  1  AS VARCHAR( 4 ));
THIS_YEAR = IP_YEAR;
  FOR
 /*------------JAN-------------*/ 
    SELECT
    CAST( :PREV_YEAR AS INTEGER) AS "YEAR",
    SUM(N.COMISSION_USD) AS JAN,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS FEB,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS MAR,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS APR,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS MAY,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS JUN,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS JUL,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS AUG,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS SEP,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS OCT,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS NOW,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS "DEC",
    C.NAME_FOR_DISPLAY,
    AVG(C.ID) AS ID

    FROM  NOTES N, CUSTOMERS C
    WHERE
    N.CUSTOMER = C.ID
    AND N.MANAGED = :IP_BROKER
    AND (N.DOCDATE >= '01.01.'||:PREV_YEAR AND N.DOCDATE < '01.02.'||:PREV_YEAR)
   GROUP BY C.NAME_FOR_DISPLAY

UNION

 /*------------FEB-------------*/ 
    SELECT
    CAST( :PREV_YEAR AS INTEGER) AS "YEAR",
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS JAN,
    SUM(N.COMISSION_USD) AS FEB,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS MAR,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS APR,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS MAY,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS JUN,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS JUL,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS AUG,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS SEP,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS OCT,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS NOW,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS "DEC",
    C.NAME_FOR_DISPLAY,
    AVG(C.ID) AS ID

    FROM  NOTES N, CUSTOMERS C
    WHERE
    N.CUSTOMER = C.ID
    AND N.MANAGED = :IP_BROKER
    AND (N.DOCDATE >= '01.02.'||:PREV_YEAR AND N.DOCDATE < '01.03.'||:PREV_YEAR)
    GROUP BY C.NAME_FOR_DISPLAY

UNION
  /*.... И так далее в том же духе....*/ 

 /*------------DEC-------------*/ 
    SELECT
    CAST( :THIS_YEAR AS INTEGER) AS "YEAR",
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS JAN,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS FEB,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS MAR,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS APR,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS MAY,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS JUN,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS JUL,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS AUG,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS SEP,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS OCT,
    CAST ( 0  AS NUMERIC( 18 , 4 )) AS NOW,
    SUM(N.COMISSION_USD) AS "DEC",
    C.NAME_FOR_DISPLAY,
    AVG(C.ID) AS ID

    FROM  NOTES N, CUSTOMERS C
    WHERE
    N.CUSTOMER = C.ID
    AND N.MANAGED = :IP_BROKER
    AND (N.DOCDATE >= '01.12.'||:THIS_YEAR AND N.DOCDATE <= '31.12.'||:THIS_YEAR)
    GROUP BY C.NAME_FOR_DISPLAY



    INTO
         :"YEAR",
         :JAN,
         :FEB,
         :MAR,
         :APR,
         :MAY,
         :JUN,
         :JUL,
         :AUG,
         :SEP,
         :OCT,
         :NOW,
         :"DEC",
         :NAME_FOR_DISPLAY,
         :CLI_ID

  DO
  BEGIN
    SUSPEND;
  END
END

2. сделал другую хранимку к-рая селектит и группирует из первой хранимки


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
CREATE PROCEDURE REP_COMMISS (
    IP_BROKER INTEGER,
    IP_YEAR VARCHAR( 4 ))
RETURNS (
    NAME_FOR_DISPLAY VARCHAR( 150 ),
    ID INTEGER,
    YEAR_ INTEGER,
    JAN_ NUMERIC( 18 , 4 ),
    FEB_ NUMERIC( 18 , 4 ),
    MAR_ NUMERIC( 18 , 4 ),
    APR_ NUMERIC( 18 , 4 ),
    MAY_ NUMERIC( 18 , 4 ),
    JUN_ NUMERIC( 18 , 4 ),
    JUL_ NUMERIC( 18 , 4 ),
    AUG_ NUMERIC( 18 , 4 ),
    SEP_ NUMERIC( 18 , 4 ),
    OCT_ NUMERIC( 18 , 4 ),
    NOV_ NUMERIC( 18 , 4 ),
    DEC_ NUMERIC( 18 , 4 ))
AS
BEGIN
  FOR
    SELECT
    
    SP.NAME_FOR_DISPLAY AS NAME_FOR_DISPLAY,
    AVG(SP.CLI_ID) AS ID,
    SP."YEAR" AS YEAR_,
    SUM(SP.JAN) AS JAN_,
    SUM(SP.FEB) AS FEB_,
    SUM(SP.MAR) AS MAR_,
    SUM(SP.APR) AS APR_,
    SUM(SP.MAY) AS MAY_,
    SUM(SP.JUN) AS JUN_,
    SUM(SP.JUL) AS JUL_,
    SUM(SP.AUG) AS AUG_,
    SUM(SP.SEP) AS SEP_,
    SUM(SP.OCT) AS OCT_,
    SUM(SP.NOW) AS NOV_,
    SUM(SP."DEC") AS DEC_
    FROM GET_GROUP_NOTES_BY_MONTH(:IP_BROKER,:IP_YEAR) SP
    GROUP BY SP.NAME_FOR_DISPLAY,SP."YEAR"
    ORDER BY SP.NAME_FOR_DISPLAY
    INTO :NAME_FOR_DISPLAY,
         :ID,
         :YEAR_,
         :JAN_,
         :FEB_,
         :MAR_,
         :APR_,
         :MAY_,
         :JUN_,
         :JUL_,
         :AUG_,
         :SEP_,
         :OCT_,
         :NOV_,
         :DEC_
  DO
  BEGIN
    SUSPEND;
  END
END

потом делаю селект с нужными мне параметрами из 2-й хранимки
Код: plaintext
1.
SELECT * FROM REP_COMMISS( 3 , 2004 )

И получаю пимерно следующее...
немного порезано, но надеюсь смысл понятен...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
NAME_FOR_DISPLAY	ID	YEAR_	JAN_	FEB_
-----------------------------------------------------------------
ЗАО "ФМ Ложистик Восток"	110	2003	45	30 <--- было оба года
ЗАО "ФМ Ложистик Восток"	110	2004	0	10 <--- было оба года
ЗАО "ФМ Ложистик Кастомс"226	2003	0	15
ЗАО "ФМ Ложистик Кастомс"226	2004	0	0
ЗАО "ФМ Ложистик Нева"	154	2003	30	15 <--- было только в 2003



и ВОТ собссно вопрос.....
как бы сделать так, чтобы при отсутствии записей по фирме N в текущем году
в результирующий датасет писалась строчка с нулевыми значениями по всем месяцам ???

Заранее благодарен даже тем, кто хотя бы дочитал до конца ;)
короче изложить не получилось...
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32607118
Лкшы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаеш выборку по CUSTOMER, а ужо потом выбираешь данные.
for select id from CUSTOMERS into :кто-то
do
begin
... /*твои выборки*/
where
N.CUSTOMER = :кто-то
suspend;
end

и еще можешь все это засунуть в цикл по условию - месяц 1-12 типа
i=1;
while(i<13)
do
begin
... /*все прочее*/
end

Можно и лучше, но сильно думая или через временные таблицы,
а в чистом виде их нет. увы! А зачастую времени думать нет.
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32607122
Фотография AndriyKo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чуть не чокнулся ! Если я хоть что то понял, то тебе надо убить вторую ХП, а первую уменьшить раз в 12 и данные из нее вытаскивать простеньким запросом типа Select * From GET_GROUP_NOTES_BY_MONTH(IP_BROKER,IP_YEAR) ORDER BY NAME_FOR_DISPLAY,YEAR Descending. Насколько я понял, что такое UDF, ты не знаешь. Обязательно ознакомься. Приведение типов слишком усложняешь. На сегодня сил уже нет, завтра попробую предложить рабочий вариант.

З.Ы. Надеюсь, кто-нибудь меня опередит :-)))
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32607125
Фотография AndriyKo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ооо, слава Богу, нашлась добрая душа !
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32607127
Matt Juntunen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не все понял, но все же :).
Сделать View/SP с полями типа Extract(Month From MyDate) , сгруппировать и прицепить Left Join к списку клиентов, у неплативших будет Null соответственно..
----------------------------------
Access Denied. FireBird recomended.
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32607129
Лкшы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndriyKoНасколько я понял, что такое UDF, ты не знаешь. Обязательно ознакомься.
А при чем здеся UDFки, чЁб с датами работать чтоль????
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32607130
Лкшы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут только одно, проход в запрсе по всем клиентам, и более ничего не придумаешь. Противно, но других вариантов за 2 года я не придумал.
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32607131
Фотография AndriyKo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛкшыА при чем здеся UDFки, чЁб с датами работать чтоль????
Ну да, месяц вытаскивать. Можно как то еще ?
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32607132
Лкшы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут только одно, проход в запрсе по всем клиентам, и более ничего не придумаешь. Противно, но других вариантов за 2 года я не придумал.
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32607134
Фотография AndriyKo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛкшыТут только одно, проход в запрсе по всем клиентам, и более ничего не придумаешь. Противно, но других вариантов за 2 года я не придумал.

Зациклило ?
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32607139
Лкшы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndriyKoЗациклило ?
Почти, пиво на ночь в таких объемах, все-таки тяжело,
можно и потупить;-)).
Вообще-то я обычно смотрю, о чем люди трепятся. и Молчу.
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32608337
It-ant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЛкшыДелаеш выборку по CUSTOMER, а ужо потом выбираешь данные.
for select id from CUSTOMERS into :кто-то
do
begin
... /*твои выборки*/
where
N.CUSTOMER = :кто-то
suspend;
end

и еще можешь все это засунуть в цикл по условию - месяц 1-12 типа
i=1;
while(i<13)
do
begin
... /*все прочее*/
end

Можно и лучше, но сильно думая или через временные таблицы,
а в чистом виде их нет. увы! А зачастую времени думать нет.

Спасибо за дельные советы!

Оно конечно так... можно уменьшить в 12 раз, торопился по-быстренькому слепить - не до красоты было, но проблеммы это не решит...
все равно если не было проплаты в текушем году, то не будет и строчки в результирующем датасете, а её как раз и надо получить
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32608450
Фотография AndriyKo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
It-ant
торопился по-быстренькому слепить - не до красоты было, но проблеммы это не решит...
все равно если не было проплаты в текушем году, то не будет и строчки в результирующем датасете, а её как раз и надо получить

Да че ж не решит-то ??? Внутри цикла For Select ... From Customer всунь ишо один цикл от предыдущего года до запрашиваемого и в энтом цикле вытаскивай нужные тебе данные, а затем однозначно делай suspend. Есть еще масса вариантов - будут тебе и нолики и крестики и какава с чаем (С).
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32608545
d'Evil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно внутри select'а по клиентам сделать цикл по нужным месяцам/годам, а потом уже делать выборку по сумме. хотя основной гемор будет с обработкой (вычленением из дат месяцов через функции). у меня сделано по другому. все данные учитываются в контексте дней. соответственно новый день добавляет в справочник дат себя с новым идом, кроме всего в доп поля в этом справочнике генерится ид (сквозной по справочнику) для месяца этой даты и года. таким образом у меня будет for select по объединению справочника клиентов и дат за нужный период, а потом выборка из таблиц данных с агрегацией.
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32608676
It-ant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndriyKo It-ant
торопился по-быстренькому слепить - не до красоты было, но проблеммы это не решит...
все равно если не было проплаты в текушем году, то не будет и строчки в результирующем датасете, а её как раз и надо получить

Да че ж не решит-то ??? Внутри цикла For Select ... From Customer всунь ишо один цикл от предыдущего года до запрашиваемого и в энтом цикле вытаскивай нужные тебе данные, а затем однозначно делай suspend. Есть еще масса вариантов - будут тебе и нолики и крестики и какава с чаем (С).

не совсем понял как select "то_чего_нет_в_базе" from ....
что-то может вернуть ;)

но буду пробовать в этом направлении... мож фиктивный suspend сделаю по условию not exist.

Спасибо.
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32608708
Фотография AndriyKo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
It-antне совсем понял как select "то_чего_нет_в_базе" from ....
что-то может вернуть ;)
но буду пробовать в этом направлении... мож фиктивный suspend сделаю по условию not exist.

Не, не то. Имел в виду примерно следующее :

For Select ...чего нужно... From Customer Do
Begin
CurrentYear=IP_YEAR-1;
While (CurrentYear<=IP_YEAR) Do
Begin
JAN=0.00;FEB=0.00;... и так все месяцы

Вытаскиваешь все нужные данные за год CurrentYear всякими там SUM, Group By
и т.п. в поля JAN,FEB....

Suspend;
CurrentYear=CurrentYear+1;
End
End

Это если тебе надо только за 2 года. Но вааще-то подобные вещи хорошо делать универсальными, т.е. не "CurrentYear=IP_YEAR-1;", а "CurrentYear=IP_YEAR-CountYear;", а CountYear передаешь в ХП в качестве входного параметра.
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32608803
It-ant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndriyKo It-antне совсем понял как select "то_чего_нет_в_базе" from ....
что-то может вернуть ;)
но буду пробовать в этом направлении... мож фиктивный suspend сделаю по условию not exist.

Не, не то. Имел в виду примерно следующее :

For Select ...чего нужно... From Customer Do
Begin
CurrentYear=IP_YEAR-1;
While (CurrentYear<=IP_YEAR) Do
Begin
JAN=0.00;FEB=0.00;... и так все месяцы

Вытаскиваешь все нужные данные за год CurrentYear всякими там SUM, Group By
и т.п. в поля JAN,FEB....

Suspend;
CurrentYear=CurrentYear+1;
End
End

Это если тебе надо только за 2 года. Но вааще-то подобные вещи хорошо делать универсальными, т.е. не "CurrentYear=IP_YEAR-1;", а "CurrentYear=IP_YEAR-CountYear;", а CountYear передаешь в ХП в качестве входного параметра.

Во! точно это!!!
так и сделаю спасибо!

А вообще как народ решает задачки развернуть горизонтально результаты группировки ???
может есть какие проторенные дорожки при условии, что количество колонок заранее не известно?
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32608853
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не заморачиваюсь, а делаю группировку вертикально,
а "разворачиваю" на клиенте
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32608878
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аналогично.
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32608898
It-ant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
visя не заморачиваюсь, а делаю группировку вертикально,
а "разворачиваю" на клиенте

Я понимаю когда - печатные отчеты, а когда в грид хочется показать?
тут гимора на клиенте больше будет...
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32608922
Фотография AndriyKo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visя не заморачиваюсь, а делаю группировку вертикально,
а "разворачиваю" на клиенте

Тики так.

авторЯ понимаю когда - печатные отчеты, а когда в грид хочется показать?

Тогда только ХП.
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32609402
doroshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
It-ant
Я понимаю когда - печатные отчеты, а когда в грид хочется показать?
тут гимора на клиенте больше будет...

А какая разница что делать? Формировать печатный отчет или заполнять ручками какой-нибудь грид? Алгоритм по идее примерно одинаковый... Так что и "гимора" - одинаково ;)
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32609417
Фотография AndriyKo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doroshkaА какая разница что делать? Формировать печатный отчет или заполнять ручками какой-нибудь грид? Алгоритм по идее примерно одинаковый... Так что и "гимора" - одинаково ;)

Все ж я думаю, однозначно тут нельзя судить. Если тебе необходимо из ХП 1-N столбцов вытащить, то как бы и деваться некуда - на клиента надо эту работу перекладывать - не изменять же ХП в рантайме. А ежели количество столбцов фиксированное, тут уже есть смысл сравнивать характеристики компьютеров - клиента и сервера. Мне вот пришлось клиента на 1 пеньке крутить, так я после этого все возможные подобные "оформительские" работы на серваке делаю... В общем, индивидуальный подход, как всегда.
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32609588
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор А вообще как народ решает задачки развернуть горизонтально результаты группировки ???
может есть какие проторенные дорожки при условии, что количество колонок заранее не известно?
...
Я понимаю когда - печатные отчеты, а когда в грид хочется показать?
тут гимора на клиенте больше будет...

Выводи результаты в Excel. Чем не грид? ;)
...
Рейтинг: 0 / 0
Хитрая группировка по дате
    #32610077
d'Evil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот-вот, в Excel выкидываешь вертикальную свертку и строишь сводную таблицу
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Хитрая группировка по дате
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]