-3

请参阅图像以了解我们的表结构和预期输出。我需要表 1 中的所有行以及一个新列,该列给出第二个表中每个批次 id 的计划编号计数。

表结构和异常输出

4

2 回答 2

0

您需要加入表(左联接更好,因为它会从您没有计划的 1 开始计算未命中行),然后是一个组

SELECT 
   T1.[Batch Id], 
   T1.[Batch Name], 
   T1.[Date], 
   T1.[Status], 
   COUNT(T2.PlanNUmber) AS PLANCOUNT
FROM
  Table1 T1
  LEFT JOIN Table2 T2 ON T1.[Batch Id] = T2.[Batch Id]
GROUP BY
   T1.[Batch Id], 
   T1.[Batch Name], 
   T1.[Date], 
   T1.[Status] 

正如我所说,如果您执行 LEFT JOIN,那么它将选择没有计划的批次,但如果您确定 T1 中的批次中没有行且 T2 中没有行,那么您可以使用 INNER JOIN。

我个人更喜欢第一个,因为它很好地涵盖了这两种情况。

于 2013-09-12T03:25:28.000 回答
0

它看起来很简单GROUP BY

SELECT T1.[Batch Id], BatchName, Date, Status, COUNT(PlanNumber) AS PLANCOUNT
FROM Table1 T1
JOIN Table2 T2 ON T1.[Batch Id] = T2.[Batch Id]
GROUP BY T1.[Batch Id], BatchName, Date, Status
于 2013-09-12T03:25:39.687 回答