BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Кросс-таб
 
С этой технологией не знаком. С БЕСТ-4 не работал. Можете указать на какие-нибудь темы/материалы?
Кросс-таб
 
Добрый день. Нет никакого доработанного отчёта, вместо 7 страниц вываливается более 1000 - и так не должно быть.Пока что самый лучший вариант тот, что я описывал ранее (и уже высылал вам на почту): мне проблема видится в том, что я неверно связываю между собой таблицы, неверно указываю источник данных для бэндов. А т.к. я уже перепробовал множество вариантов, хочется узнать примерный алгоритм - вдруг я допустил ошибку в самом начале.
Может стоит абстрагироваться?
У меня есть таблица (одна!), в которой мне важны следующие атрибуты: клиент, количество, дата. Требуется получить что-то вроде сводной таблицы как в MS Excel: строками сделать клиентов (т.к. их много), столбцами сделать даты (интервал задаёт пользователь, не более 30), а заполнение этой таблицы - суммы количеств соответствующих клиенту и дате. Как это можно реализовать?
Кросс-таб
 
Честно говоря, не очень понял, как "маневр" с полем GRYZPLAT, решает проблему.
Тем не менее, конечно же, попробовал запустить - 1000 страниц отчёта заполненного нулями. Вынес поле из "left join on" отдельно в "where" (заменил "and" на "where") - пришел обратно к своей проблеме, описанной ранее (на скриншотах).



SEL ECT gryzplat, date, sum(kol) as kol
FR OM sclad_mdocm
WH ERE sclad=:sclad and
vid='2' and type='1' and
date>=:DATEBEGIN and
date<=:DATEEND
GROUP BY GRYZPLAT, DATE
INTO CURSOR GLAV;

sel ect DISTINCT date from GLAV
into cursor DD;

sel ect DISTINCT gryzplat fr om GLAV
into cursor GG;

select * fr om GG, DD
order by gryzplat, date
into cursor GD;

SELECT GD.*, GLAV.KOL FR OM GD LEFT JOIN GLAV
ON ((GLAV.date=GD.date)
and (GLAV.gryzplat=GD.gryzplat))
where GLAV.GRYZPLAT=:gryzplat
Кросс-таб
 
отправил сегодня
Кросс-таб
 
Я выравнял таблицу (в недостающие строки сделал kol=0) - первое изображение
поля: code, date, kol
Затем сделал секционный кросс-таб, вновь та же ситуация. - второе изображение
строки: code (см. 10 и 13), шапка: date, заполнение: kol

Что можно ещё придумать? :)
Изменено: Дмитрий Берилло - 28.09.2011 08:13:56
Кросс-таб
 
Получается, кросс-таб через объект умеет привязываться к собственной шапке, а секционный нет..? - Жаль...
Результата можно добиться, только каждый раз "затачивая" в запросе таблицу?
Кросс-таб
 
в дополнение к моему косноязычию:
Кросс-таб
 
Добрый день.
Я новичок. Пользуюсь SQL-запросами в дизайнере отчётов. И у меня никак не получается корректно воспользоваться именно секционным CROSS-TABом (объектный меня не устраивает): либо грузится "бесконечная туча" страниц, либо вовсе виснет, либо лист пустой... И ни разу у меня не получилось увидеть именно переменное количество столбцов зависимых от таблицы. Пробовал из одного запроса (возможно ли это?), пробовал из двух запросов. Пробовал их упрощать/урезать/связывать поля.. В общем перепробовал всё логичное и нелогичное.

Поковырялся в приложенных инструкциях, но там, к сожалению, более менее подробно описано только для запросов fox pro (насколько я понял). Пробовал проводить некую аналогию...

Можете предоставить некий минимальный требуемый алгоритм, что бы нащупать верный путь?

Использую SCLAD/MDOCM. Необходимо выводить колонки соответствующие каждой дате (3-31 день) соответственно каждому значению поля gryzplat (заполнение - значения поля kol).

**************
Разобрался, но у меня почему-то вся табуляция схлопывается влево. Т.е. если у меня одна из дат отсутствует, перечисляются оставшиеся, как-будто они идут под ряд (и остаётся место в конце). Это я наивен или что-то не учёл?
Изменено: Дмитрий Берилло - 23.09.2011 12:19:02
Страницы: 1