我正在尝试创建(我认为的)一个简单的Crystal Report。基本上,我想制作一份报告,列出每次学生收到某种纪律处分时的情况:
╔═══════════╦═════════════╦════════════╦══════════╗
║ StudentID ║ StudentName ║ Action ║ Date ║
╠═══════════╬═════════════╬════════════╬══════════╣
║ 1 ║ Smith, John ║ Suspension ║ 1/1/2012 ║
║ 2 ║ Q, Susie ║ Detention ║ 1/5/2012 ║
║ ... ║ ... ║ ... ║ ║
╚═══════════╩═════════════╩════════════╩══════════╝
但是,此信息作为三个单独的表存储在数据库中:
我不确定如何在Crystal Reports中链接这些列,特别是这样我可以显示描述所采取操作的列而不仅仅是代码。我认为SQL Expression字段可以实现这一点,如下所示:
(
SELECT "ActionCodes"."ActionDesc"
WHERE "DisciplinaryActions"."ActionCode" = "ActionCodes"."ActionCode"
)
不幸的是,将此字段添加到我的报告中只会产生空白行。我是在正确的轨道上,我只是摸索着我的查询,还是有更好的路线?
答案 0 :(得分:0)
首先检查数据库中的查询,然后检查数据是否存在
学生ID,学生姓名,行动,
再次检查ReportPriview后,水晶报告的详细信息部分中的日期。
答案 1 :(得分:0)
在Crystal Reports中,您需要转到Database Expert,导航到要从中检索表的数据库。然后使用>按钮位于屏幕中间,将所有表格移到右侧:学生,纪律,描述。
然后您必须创建左外连接。
从Student表中,选择StudentID并将其拖到Disciplinary的StudentID。
您应该会看到一个显示从学生到纪律的箭头的联接--->
之后,左外连接纪律代码与描述代码。
一旦连接正确,您应该可以将所需的不同字段拖放到报告中。
您可以使用SQL Expression选项,但是更容易进行连接,并且您还可以灵活地在将来使用Disciplinary Code或Description。
如果您需要有截图的分步说明,请与我们联系。