Независимая отчетность по нескольким таблицам в Crystal Reports 11 - PullRequest
1 голос
/ 30 января 2012

Я использую Crystal Reports Developer Studio для создания отчета, который сообщает о двух разных таблицах, пусть они будут «ATable» и «BTable». Для моей самой простой задачи я хотел бы сообщить счетчик каждой таблицы, используя Total Running Fields. Я создал один для ATable (называется ATableTRF), и когда я публикую его в своем отчете, вот что происходит:

1) Запрос SQL (Показать запрос SQL) показывает:

SELECT "ATABLE"."ATABLE_KEY"
FROM   "DB"."ATABLE" "ATABLE"

2) Общее количество прочитанных записей - это количество записей в ATable.

3) Правильно набранное число (общее количество записей в ATable).

То же самое касается BTableTRF, если я удаляю ATableTRF, я получаю:

1) Запрос SQL (Показать запрос SQL) показывает:

SELECT "BTABLE"."BTABLE_KEY"
FROM   "DB"."BTABLE" "BTABLE"

2) Общее количество прочитанных записей - это количество записей в BTable.

3) Правильно набранное число (общее количество записей в BTable).

Проблемы начинаются , когда я просто помещаю оба поля в отчетах. Затем происходит то, что я получаю два запроса один за другим (поскольку таблицы не связаны в отчетах Crystal):

SELECT "ATABLE"."ATABLE_KEY"
FROM   "DB"."ATABLE" "ATABLE"

SELECT "BTABLE"."BTABLE_KEY"
FROM   "DB"."BTABLE" "BTABLE"

И количество прочитанных записей намного больше, чем у каждой из таблиц - это не останавливает. Я бы подтвердил, что это count (ATable) xcount (BTable), но это превысило бы ограничения моего компьютера (возможно - один - около 300 тыс. Строк, другой - около 900 тыс. Строк).

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

Может кто-нибудь помочь с этим?

Спасибо!

Ответы [ 2 ]

1 голос
/ 31 января 2012

Если не существует какого-либо объединения, описывающего взаимосвязь двух таблиц, то результатом будет декартово произведение. Попробуйте просто использовать два подзапроса, либо с помощью команды SQL, либо в виде отдельных выражений SQL, чтобы получить количество строк. Пример:

select count(distinct ATABLE_KEY) from ATABLE

Если вас не интересует что-либо еще в этих таблицах, кроме подсчета строк, то нет смысла переносить все эти строки в Crystal - лучше выполнять тяжелую работу на СУБД.

0 голосов
/ 09 августа 2012

Вы можете объединить два запроса. Это даст вам один набор записей, содержащий строки из каждого запроса один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...