我知道以前有人问过这个问题……有点。这就是我发帖的原因。基本上,我正在 Crystal 中构建一个报表,它依赖于保持这个简单,至少 3 个表。
表 A 通过唯一 ID 与表 B 内部连接。表 B 有一个子表,它可能有也可能没有与这个唯一 ID 相关的数据。
作为一般示例,表 A 是客户表,表 B 是产品表,子表包含产品编号。所有客户都有产品,但并非所有客户在子表中都有产品编号。我希望我已经解释得足够简单了。
我的问题是在 Crytal 和 Access 之间以及如何查询它。当我在 VB 中编写某些内容时,编写和执行查询并以所需的方式显示结果很容易。但是,我似乎无法直接查询...我要么最终得到一个以笛卡尔积作为结果集的报告,结果显示正常...除了即使只有少数记录,我最终也只有大约 30k 页。 .或者我最终得到一个空白数据集,因为子表没有与 B 对应的数据。
使用外部连接,我设法在一定程度上得到了我的结果,但在现实世界的报告中是不可接受的。我确定这个问题已经出现,但我似乎找不到任何合适的答案,老实说,我什至不确定作为 Crystal n00b 应该问什么问题。
我真正想要的是表 A 中的数据、表 B 和子表中的数据。虽然它们在逻辑上是链接的,并且可以与 ID 字段链接,但我认为没有必要,因为我正在为 ID 字段的报告获取参数值。一旦表格被过滤,除了将它们转储到报告中之外,不需要采取其他任何操作。
那么有人能指出我正确的方向吗?我可以在单独的部分中设置单个数据源(不相关)吗?我应该在我的数据库中构建一个查询和逻辑树来获得我需要的东西吗?我一直在绞尽脑汁,似乎无法找到正确的解决方案,任何和所有的建议都值得赞赏,如果我能澄清任何事情或回答任何问题,我会的。
提前致谢。
根据以下要求:
Section1
ID fname lname
01 john smith
Section2
ID notifiedDate notifiedTime
01 10/10/2012 12:35PM
S2childAdmin
ID noteName
01 jane doe
该数据在逻辑上是相关的,可以在 DB 中关联。但是,只要将 ID 参数传递给每个表,就没有必要。查询与 Section2 连接的 Section1 内部工作正常。但是任何其他安排都会导致比要求的行数更多,并且我最终会得到一份重复多次的报告。我真正需要的是像 Section1 与 Section2 和 S2childAdmin 一起作为免费可用的表加入的东西。否则它会增加我的数据或导致一个空记录集(因为它可以返回 0 行)