从表中选择另一个条目不存在的表

时间:2015-01-28 09:51:53

标签: join crystal-reports

我确信我的标题还有很多不足之处,但让我试着解释一下这个问题。

我有一张表accounts,如此:

+----------+-----------+-----------+
|    id    |   name    |   email   |
+----------+-----------+-----------+
|     1    |   Bob     |bob@bob.com|
+----------+-----------+-----------+

我有一个像这样的包表:

+----------+-----------+-----------+--------+--------+
|    id    |package_id | start_date|end_date| acc_id |
+----------+-----------+-----------+--------+--------+
|     1    |   15      |2014-01-01 |        |  1     |
+----------+-----------+-----------+--------+--------+

一个帐户可以包含多个包,但它们不会包含相同的包,即两个活动包package_id为15个。

我需要有效地选择他们没有package_id为15或25的活动包的所有帐户。我使用以下内容来确定包是否处于活动状态:

({packages.start_date} >= CurrentDate and ({packages.end_date} <= CurrentDate or {packages.end_date} = DATE(0000,00,00) or ISNULL({packages.end_date})))

我已经看到我可以说在公式中有第二个选择,选择一个名称,然后使用此值进行比较。例如,

(select * from packages where ({packages.start_date} >= CurrentDate and ({packages.end_date} <= CurrentDate or {packages.end_date} = DATE(0000,00,00) or ISNULL({packages.end_date}))) AND acc_id = accounts.id AND package_id IN(15,25)) AS has_package

我可以这么说:

has_package <= 0

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

在记录选择公式中写下代码:

Not(package_id IN(15,25)))