当前位置: 首页 > 面试题库 >

ConcatRelated()函数可在表单上提供唯一值

松亦
2023-03-14
问题内容

从事故管理开始,我已经开始开发供我的机构使用的Access数据库。我一直在尝试开发一种表格,该表格可以充当我们所有事件的主要索引,并且可以作为一个中心,以打开调查人员将要使用的调查相关表格。我开发了三个常规表和一个联结表:

  • Investigations - General Information
  • Target(s)
  • Victim(s)
  • Target/Victim Joiner

常规信息表与目标具有一对多的关系,目标和受害人具有通过联接器表连接的多对多关系。该表也可以用于指控和结果,以便每个目标和受害者都有自己的关联指控和结果。

我跑了两个查询;一个名为Tar / VicQuery的功能,具有从以上相关表中收集的信息:

InternalIncidentID  TargetID    TargetFullName  VictimID    VictimFullName  Offense(s)  Outcome(s)
JAW-1               TAR-1       Smith Davie     VIC-1       Harris Michelle Neglect    Substantiated
JAW-1               TAR-1       Smith Davie     VIC-2       Jones Mary      Neglect    Substantiated
JAW-2               TAR-2       Thimble John    VIC-3       Man Joseph      Abuse      Substantiated
JAW-2               TAR-3       Rocket Sammy    VIC-3       Man Joseph      Abuse      Substantiated
JAW-2               TAR-4       Berkowitz Josh  VIC-3       Man Joseph      Abuse      Substantiated
JAW-3               TAR-5       McGowen Melissa VIC-4       Root James      Theft      Founded
JAW-3               TAR-5       McGowen Melissa VIC-5       Lopez Randy     Theft      Founded
JAW-3               TAR-5       McGowen Melissa VIC-6       Martino Bruno   Theft      Founded
JAW-3               TAR-6       Thimble John    VIC-4       Root James      Theft      Unfounded
JAW-3               TAR-6       Thimble John    VIC-5       Lopez Randy     Theft      Unfounded
JAW-3               TAR-6       Thimble John    VIC-6       Martino Bruno   Theft      Founded

另一个运行上述查询的查询称为TargetQuery:

InternalIncidentID  TargetName
JAW-1               Smith Davie, Smith Davie
JAW-2               Thimble John, Rocket Sammy, Berkowitz Josh
JAW-3               McGowen Melissa, McGowen Melissa, McGowen Melissa, Thimble John, Thimble John, Thimble John

上面的查询使用Allen
Browne的ConcatRelated方法来组合具有相同事件ID的数据行,并串联调查的目标。我遵循了Allen在此页面上表达的说明,包括创建关联的模块,粘贴其功能,然后尝试将其用作查询的一部分。我还希望在另一个(或相同,如果可能的话)查询中对与案件相关的受害者进行相同的查询。

TargetQuery的SQL代码:

SELECT DISTINCT [Tar/Vic Query].InternalIncidentID, ConcatRelated("TargetFullName","[Tar/Vic Query]","InternalIncidentID= " & [Tar/Vic Query].[InternalIncidentID]) AS TargetName
FROM [Tar/Vic Query];

如上所示,结果非常接近我希望达到的结果。理想的情况是重复的名称不会再作为串联的一部分出现。 我该如何做到这一点?

我尝试使用唯一的值来对此进行纠正,这在一种方式上有很大帮助(将记录的数量从11个减少到3个),但是并没有解决“ Davie
Smith”在一个案例中多次出现的问题(在如表1所示,他有两名受害者。不幸的是,这只是我的难题之一,因为我一般对Access和SQL还不熟悉。我希望到此结束时,我的表单将如下所示(在目标名称和受害者名称之前有更多字段,但您会明白的):

  InternalIncidentID    TargetName                                 VictimName 
    JAW-1               Smith Davie                                Harris Michelle, Jones Mary
    JAW-2               Thimble John, Rocket Sammy, Berkowitz Josh Man Joseph
    JAW-3               McGowen Melissa Thimble John               Root James, Lopez Randy, Martino Bruno

对此将提供的任何帮助/教育将不胜感激。我非常了解我目前对这个程序的理解上的差距,并感谢我对这个问题的所有耐心。


问题答案:

艾伦的过程仅允许向该功能提供WHERE标准。我见过的其他版本允许传递整个SQL语句。

将必须建立2个查询,为每个InternalIncidentID返回DISTINCT值-
一个用于目标,一个用于受害者。这些查询将作为对Allen函数的每个调用的来源。

qryIncTargets

SELECT DISTINCT InternalIncidentID, TargetFullName FROM [Tar/Vic Query];

受害者

SELECT DISTINCT InternalIncidentID, VictimFullName FROM [Tar/Vic Query];

qryConcatenate

SELECT Investigations.InternalIncidentID, 
ConcatRelated("TargetFullName","qryIncTargets","InternalIncidentID='" & [InternalIncidentID] & "'") AS Tars, 
ConcatRelated("VictimFullName","qryIncVictims","InternalIncidentID='" & [InternalIncidentID] & "'") AS Vics
FROM Investigations;

可以消除[Tar / Vic查询],而是使用[目标/受害者连接者]到[目标]和[受害者]的JOIN构建两个DISTINCT查询。



 类似资料:
  • 问题内容: 在我的职业生涯中,我曾遇到过几次这样的问题,而我当地的同行似乎都无法回答。假设我有一个表,表中有一个“描述”字段,这是一个候选键,只是有时用户会在过程中途停下来。因此,对于25%的记录,此值是null,但对于所有非NULL的值,它必须是唯一的。 另一个示例可能是一个表,该表必须维护一条记录的多个“版本”,并且一个位值指示哪个是“活动”的。因此,总是填充“候选键”,但是可能存在三个相同的

  • 我试图在单击表单提交按钮时使用Jquery启动一个函数,但该函数需要在表单实际提交之前启动。 我试图在提交时将一些标记属性复制到隐藏的文本字段中,然后提交表单。 我已经通过使用功能(当提交按钮悬停在上方时)成功实现了这一点,但这在使用触摸的移动设备上不起作用。 我玩过提交函数,但是当表单提交时,而不是之前,函数会触发,所以值不会保存在字段中。 非常感谢。

  • 我使用的spring评估语言如下: 我的问题是bigMap中包含的大多数数据都没有被使用。相反,我更愿意通过将函数传递到求值上下文来延迟加载所需的内容,例如: 但我找不到如何做到这一点。有什么建议吗?

  • 问题内容: 我有一个沼泽标准的登录表单-使用HTML / jQuery的AIR项目上的电子邮件文本字段,密码字段和提交按钮。当我在表单上按Enter键时,整个表单的内容消失了,但是表单没有提交。有谁知道这是Webkit的问题(Adobe AIR使用Webkit的HTML)还是我捆绑了东西? 我试过了: 但这既没有停止清算行为,也没有提交表格。没有与表单相关的操作-可能是问题吗?我可以在动作中添加J

  • 我想写一篇文章在我的标题,但有一个字是一个像“链接”或“a”点击链接。标题只等待一个字符串。

  • 0.9.2 新版功能. 封装字符串,提供 ANSI 色彩输出的函数。 本模块中的所有函数均返回包裹对应色彩 ANSI 字符的 text 字符串。 例如,在支持 ANSI 的终端中打印绿色文字: from fabric.colors import green print(green("This text is green!")) 这些函数返回值都是修改后的字符串,因此你也可以嵌套使用它们: fro