Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / CR XI Суммирование полей в кросс-табе / 1 сообщений из 1, страница 1 из 1
13.11.2010, 12:00
    #36953623
al_stal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CR XI Суммирование полей в кросс-табе
Ребята, очень нужна помощь. Поиск ничего не дал.

Задачка такая.
Есть отчет в котором выводятся продажи по месяцам -
Код: plaintext
1.
2.
3.
4.
5.
SELECT "Первый товар", count(*), month(t.dtsend) FROM mytable t WHERE (условие1)
group by  1 , 3 
UNION 
SELECT "Второй товар", count(*), month(t.dtsend) FROM mytable t WHERE (условие2)
group by  1 , 3 ;
результат идет в кросс-таб.

Беда в том, что в кросстаб нужно добавить еще одно поле, в котором данные выводились бы не за текущий месяц а за сумму к данному месяцу, т.е. в февральском поле была бы сумма января и февраля, в мартовском - января, февраля и марта.
Конечно, можно было бы сделать так

Код: plaintext
1.
2.
3.
4.
5.
SELECT "Первый товар", count(*), X FROM mytable t WHERE (условие1) AND (month(t.dtsend)<X)
group by  1 , 3 
UNION 
SELECT "Второй товар", count(*), X FROM mytable t WHERE (условие2) AND (month(t.dtsend)<X)
group by  1 , 3 ;

Где в качестве X подставлять поочередно все 12 месяцев. Но это раздует и без того не малый запрос до невиданных размеров! А ведь всего-то и нужно - просто к полю добавлять значение предыдущего!

Была мысль как-то поиграться с формулами - но в формулах нет функции суммирования по условию, вроде, например, какой-нибудь такой такой -
Sum({Command.expression:2},({Command.expression:3}<X));

Подскажите хотя бы в каком направлении копать.
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / CR XI Суммирование полей в кросс-табе / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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