Как я могу изменить это заявление SQL в нечто Crystal Reports - PullRequest
0 голосов
/ 15 мая 2009

У меня есть три таблицы в моих Crystal Reports, и это выглядит так:

Property
  ID
  Other Data
Unit
  ID
  PropertyID <-- fk to Property
  Other Data
Tenant
  ID
  UnitID <-- fk to Unit
  Other Data

В отчете будут показаны только единицы (сгруппированные по собственности, к которой они принадлежат), с которыми не связано ни одного арендатора. Некоторые приятные люди помогли мне понять SQL для запроса, и это выглядит так:

SELECT       Unit.ID
FROM         Unit
WHERE NOT EXISTS (SELECT 1 FROM Tenant WHERE Unit.ID = UnitID)

Теперь я знаю, что мне нужно сгруппироваться по Property --> Units, но это насколько я знаю. Оказывается, поля выражений SQL допускают только возврат одного результата, а не набора результатов, поэтому поиск, хотя набор результатов из вышеупомянутого запроса не может быть выполнен таким образом, и я не могу просто ввести простой sql.

Как это можно сделать?

Ответы [ 2 ]

1 голос
/ 15 мая 2009

если у вас есть запрос (на основе вашего комментария к @Joe Koberg), просто поместите его в хранимую процедуру и запустите Crystal.

0 голосов
/ 15 мая 2009
select unit.id 
from unit
       left outer join 
     tenant 
       on unit.id = tenant.unitid
where tenant.unitid is null

Если я вспоминаю конструктор запросов Crystal, вы можете объединять таблицы с левым или не равным соединением. Если вы выберете левое соединение, также выберите критерии, которые включают только те строки, в которых объединенная таблица пуста (таким образом, между этими ключами нет связи)

...