我有多对多的表关系,涉及2个逻辑表。
记录连接到primaryID上的关系表的表 记录表的第二个实例,它连接到ReciprocalID上的关系表
这样做的目的是在数据库中显示家庭关系。每个主记录表在关系表中都有一行或多行,显示此人在数据库中具有的每个其他族关系。
我的任务是尝试制作一个联系人列表,其中包括显示每个上学的孩子的姓名以及他们的父母和联系信息。
我已经达到了能够向每个家长展示孩子的地步,但现在我必须找到一种方法将这些孩子合并在一起。
由于我无法控制此数据库(其教育边缘7)的设计,因此我创建了一个单独的数据库,用于保存我的报告的查询和视图。我正在做这项工作的学校只能访问CR 8.5。
现在我将CR中的顶级组作为recordstable的姓氏,我的第二组是recordstable的全名。我有一个子报告,可以输入所有子记录。
我在我的主视图(上面描述的那个)中使用了一个case语句来将'daughter'和'son'转换为child,将'mother'或'father'转换为parent。
希望这并没有太过漫无边际。如果您需要更多信息,请询问。SELECT dbo.vwEA7RelationshipsTableView.PRIMARYID,
dbo.vwEA7RecordsTableView.LASTNAME AS PRIMARYLASTNAME,
dbo.vwEA7RecordsTableView.FIRSTNAME AS PRIMARYFIRSTNAME,
dbo.vwEA7RecordsTableView.NAMEFORDISPLAY AS PRIMARYNAME,
CASE dbo.vwEA7RelationshipsTableView.PRIMARYDESC
WHEN 'Father' THEN 'Parent'
WHEN 'Mother' THEN 'Parent'
WHEN 'Son' THEN 'Child'
WHEN'Daughter' THEN 'Child'
ELSE dbo.vwEA7RelationshipsTableView.PRIMARYDESC
END AS PRIMARYDESC,
dbo.vwEA7RelationshipsTableView.RELATIONID,
vwEA7RecordsTableView_1.LASTNAME AS RELATIONLASTNAME,
vwEA7RecordsTableView_1.NAMEFORDISPLAY AS RELATIONNAME,
dbo.vwEA7RelationshipsTableView.RELATIONDESC
FROM dbo.vwEA7RelationshipsTableView INNER JOIN
dbo.vwEA7RecordsTableView ON
dbo.vwEA7RelationshipsTableView.PRIMARYID = dbo.vwEA7RecordsTableView.ID INNER JOIN
dbo.vwEA7RecordsTableView AS vwEA7RecordsTableView_1 ON
dbo.vwEA7RelationshipsTableView.RELATIONID = vwEA7RecordsTableView_1.ID
TableViews实际上只是从主数据库中重新创建主表。
答案 0 :(得分:0)
我已经解决了这个问题。我的sql代码很好,这是格式化我的Crystal内部参数以及一些创意分组的问题。