C# 合并SQL查询

C# 合并SQL查询,c#,sql,C#,Sql,我有两个SQL查询是从C#winform运行的,我想合并它们 第一个是: SELECT * FROM ES_TOOL INNER JOIN ES_HARDWARE ON ES_HARDWARE.eshw_ID = ES_TOOL.ESTOOL_HARDWARE INNER JOIN ES_PAYMENT on ES_payment.espay_id = es_TOOL.estool_payment 这给出了所有工具及其相关支付和硬件要求的列表 第二个通过c#f

我有两个SQL查询是从C#winform运行的,我想合并它们

第一个是:

SELECT * FROM ES_TOOL INNER JOIN ES_HARDWARE ON ES_HARDWARE.eshw_ID = ES_TOOL.ESTOOL_HARDWARE 
                INNER JOIN ES_PAYMENT on ES_payment.espay_id = es_TOOL.estool_payment
这给出了所有工具及其相关支付和硬件要求的列表

第二个通过c#for循环在第一个查询返回的每个记录上运行:

SELECT avg(a.esmrk_value) from ES_MARK a Inner Join ES_TOOL_CHAPTER b 
on  a.esmark_tool_chapter= b.estch_id WHERE b.estch_tool=@tool
这将返回每个工具在es_分数表中获得的平均分数

N.B.工具的各个“章节”将获得N.B.分数。因此,要找到一个工具的所有标记,我们需要查看工具章节列表的ES_工具章节表。工具章节是在ES_标记表中接收标记的章节

我已经尝试过分组和更多的连接,但我只是一分钟比一分钟更困惑,所以我非常感谢在这件事上的任何帮助。 我基本上是在寻找一个查询,它将返回第一个查询的所有结果,并为average mark添加一列

谢谢


编辑:@tool表示工具id。

如果要与主查询一起检索平均成绩:

SELECT *
FROM ES_TOOL
  INNER JOIN ES_HARDWARE ON ES_HARDWARE.eshw_ID = ES_TOOL.ESTOOL_HARDWARE 
  INNER JOIN ES_PAYMENT on ES_payment.espay_id = es_TOOL.estool_payment
  LEFT JOIN (
    SELECT b.estch_tool, avg(a.esmrk_value) AvgValue
    FROM ES_MARK a
      Inner Join ES_TOOL_CHAPTER b 
        ON a.esmark_tool_chapter = b.estch_id
    GROUP BY b.estch_tool
  ) g ON ES_TOOL.ToolColumn =  g.estch_tool
用正确的列名替换
ToolColumn


注意:
SELECT*
不推荐,请阅读。

您需要执行两个单独的查询并将它们连接到C#中,还是要查找单个SQL查询?
@tool
参数表示哪一列?@jon:查找单个SQL查询。我收到了一个“多部分标识符”b.estch#工具“无法绑定。”错误。级别16,状态1,第1行。显然。有什么想法吗?@dave更新到
g.estch_工具