计算来自另一个 table 的记录以包含在绑定 table 的结果中

Count records from another table to include in the results of a bound table

我正在使用 Visual Studio 并且有一个 Access 数据库,其中有几个 table 是相关的。他们使用默认 drag/drop 使用 WinForms 绑定到自动生成的数据集。

我希望父项 table 在结果中包含一个列,其中包含具有该 ID 的相关记录的计数。如果重要,table 看起来像这样:

我向 table 适配器添加了一个额外的查询(如您从屏幕截图中看到的那样),它执行它需要执行的操作(不包括链接的 ID),认为这就是如何执行它。我至少在正确的轨道上吗?查询如下所示:

SELECT COUNT(*) AS WorkerCount
FROM (tblJobLaborTech INNER JOIN tblJobLabor ON tblJobLaborTech.JobLaborID = tblJobLabor.JobLaborID)
WHERE  (tblJobLabor.JobLaborID = 494)

当然我需要将 494 更改为某个变量,该变量将在 运行 时匹配相应的记录,但是

WHERE (tblJobLabor.JobLaborID = tblJobLaborTech.tblJobLaborTechID)

似乎根本无法预览(没有给出参数值)

所以我也试过了

WHERE (tblJobLabor.JobLaborID = @JLID)

也没有预览。

但这只是问题的开始。假设我可以让那部分工作,我如何将调用查询中每条记录的标量查询结果 运行 和数据集中的 return 当作 return 中的另一个字段一样 table?

您不需要使用数据库执行此操作。数据表可以计算子关系中存在的记录

在您的 tblJobLabor 中添加另一个数据列(右键单击,添加>>列)并将其表达式 属性 设置为:

Count(Child(XXX).JobLaborID)

将 XXX 替换为我突出显示的此 DataRelation 的名称:

可以通过查看 DataColumn.Expression 上相当冗长的文档找到更多信息,网址为 https://docs.microsoft.com/en-us/dotnet/api/system.data.datacolumn.expression?view=netframework-4.8