Слишком сложный запрос

отредактировано 16:27 Раздел: FastReport 3.0
При формировании отчета выводит сообщение "Слишком сложный запрос".

В отчете используется объет Chart, в нем 14 Series, для каждой серии делаю свой запрос (в отдельном ADOQuery).

Вопрос: есть ли вариант построения отчета другим способом? Или как можно обойти ошибку?

Запросы в кверях вида:
SELECT SUM(A1), 2000 FROM table WHERE year=2000
UNION
SELECT SUM(A1), 2001 FROM table WHERE year=2001
UNION
SELECT SUM(A1), 2002 FROM table WHERE year=2002
UNION
SELECT SUM(A), 2003 FROM table WHERE year=2003

В зависимости от квери меняется аггрегатируемое поле


Комментарии

  • MIXMIX
    отредактировано 16:27
    А может проще данный запрос поместить во вьюху а уже непосредственно самим Фаст-репортом вытягивать из вьюхи?...
  • отредактировано 16:27
    MIX написал:
    А может проще данный запрос поместить во вьюху а уже непосредственно самим Фаст-репортом вытягивать из вьюхи?...
    MIX написал:
    Ядро базы данных Microsoft Jet не поддерживает использование инструкции CREATE VIEW
  • MIXMIX
    отредактировано 16:27
    PROeXT написал:
    PROeXT написал:
    Ядро базы данных Microsoft Jet не поддерживает использование инструкции CREATE VIEW
    Ну Вы же не указали с чем именно работаете ;)
  • отредактировано 16:27
    А я ничего такого и не говорю.. Я тоже об этом думал... Но... Ладно, буду пробовать через промежуточную таблицу
  • MIXMIX
    отредактировано 16:27
    PROeXT написал:
    А я ничего такого и не говорю.. Я тоже об этом думал... Но... Ладно, буду пробовать через промежуточную таблицу
    Только об этом подумал.
  • отредактировано 16:27
    PROeXT написал:
    При формировании отчета выводит сообщение "Слишком сложный запрос".

    В отчете используется объет Chart, в нем 14 Series, для каждой серии делаю свой запрос (в отдельном ADOQuery).

    Вопрос: есть ли вариант построения отчета другим способом? Или как можно обойти ошибку?

    Запросы в кверях вида:
    SELECT SUM(A1), 2000 FROM table WHERE year=2000
    UNION
    SELECT SUM(A1), 2001 FROM table WHERE year=2001
    UNION
    SELECT SUM(A1), 2002 FROM table WHERE year=2002
    UNION
    SELECT SUM(A), 2003 FROM table WHERE year=2003

    В зависимости от квери меняется аггрегатируемое поле
    Надо бы Вам SQL подучить. Агрегаты, группировка,.....
    Я так понимаю, что данные по годам лежат в разных таблицах? да еще и структуры этих таблиц различны. Лучше бы, чтобы оно все в одной таблице лежало единообразно, тогда можно было бы написать нечто вроде
    select nYear, sum(A) from SomeTable
    goup by nYear
    
  • отредактировано 16:27
    написал:
    Ядро базы данных Microsoft Jet не поддерживает использование инструкции CREATE VIEW
    Кто сказал, что не поддерживает?
    http://msdn.microsoft.com/library/default....ml/acadvsql.asp
  • отредактировано 16:27
    Пользуйтесь хранимыми процедурами!
    Весь этот запрос на серваке выполнится нормально и вернет нужный НД.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.