2016-05-18 2 views
0

мне нужно сделать следующее выбрать для своего Crystal Report:НЕ В сценарии в Crystal Report с несколькими источниками данных

Select * from Table1 where ID not in (select ID from Table2 where mydate = @param) 

И сделать вещи более сложными Таблица 1 & Таблица 2 находятся на двух разных серверах (один Доступ, один - SQL на разных машинах).

Я пробовал несколько вещей, но, похоже, не могу получить правильные записи. Я пробовал использовать левое соединение, но, конечно, я не могу фильтровать дату. Любые идеи, как это можно сделать?

Спасибо заранее

ответ

0

Может быть, вы должны создать формулу для каждого поля:

@ Field1

Если Table1.ID = Table2.ID

Тогда

!

Таблица1.Field1

+0

Если меня не недопонимание ответ , это не даст правильный набор результатов. Это будет эквивалентно Выберите * из таблицы 1, таблицы2, где Table1.ID <> Таблица2 – user6349124

0

ОК, поскольку у вас есть только 2 источники данных, попробуйте следующее:

Возьмите основной доклад и один доклад к югу в этом главном докладе

Основной доклад:

Этот запрос должен быть использован в основном докладе

select ID from Table2 where mydate = @param 

Создание параметра Я и retrive значения в основном отчете.

Теперь возьмите вспомогательный отчет

отчет суб:

Sub отчет должен использовать этот запрос:

Select * from Table1 

Сейчас в выборе записей подпункта отчета написать эту

ID not in ({?pm-ID}) 

pm-ID} это значение, которое вы переходите от основного отчета к суб отчету t hrough суб отчет связывает

Теперь вы можете отображать данные в отчете в соответствии с требованием

0

Если я что-то (вполне возможно) отсутствует, это должно быть выполнимо с помощью присоединиться к левой.

Для этой иллюстрации я использую две команды SQL: в таблице 1 есть записи, которые не находятся в таблице2, а в таблице 2 есть записи, которые не указаны в таблице 1.

отчеты только возвращаются, если table2 имеет нулевое значение, или table2 не является нулевым и table2.Date не равен параметру

Когда @param = «20160303», мы не видим, что запись из table1 или Таблица 2.(ID 55) enter image description here

Dataset пример: enter image description here

Регистрация:

enter image description here

RecordSelect Формула enter image description here

Подводя итог: настройка источников данных с использованием левого соединения в общем столбце. Создать параметр даты Использование отчета> Выбрать Экспорт> Запись и введите следующую формулу

isnull({Table2.date})or {Table2.date} <> {?date} 

Если вы используете диапазон дат, вы, возможно, придется переформатировать not equal to @param Часть