0

我有三个表:T_O、T_C 和 T_D,它们每个都有一个日期 (run_date) 和计数列。我需要选择数据以按日期显示每个计数的摘要。我无法让嵌套的 sql 使它看起来正确。

需要按运行日期分组。最终结果应如下所示:

Run_Date    Total Defects   Not Closed    Closed
05/29/13    178             100           78
06/04/13    204             103           101
06/11/13    234             114           120
4

1 回答 1

0

我假设这三个表各有两列:Run_Dateand Total Defects, Not Closedor Closed。如果您有一个包含所有运行日期的表,则可以使用以下方法:

SELECT
  RunDates.Run_Date,
  T_D.[Total Defects],
  T_O.[Not Closed],
  T_C.[Closed]

FROM ((
  RunDates
  LEFT JOIN T_C ON RunDates.Run_Date = T_C.Run_Date)
  LEFT JOIN T_O ON RunDates.Run_Date = T_O.Run_Date)
  LEFT JOIN T_D ON RunDates.Run_Date = T_D.Run_Date

如果没有,您将需要使用 UNION(而不是 UNION ALL)构建一个:

SELECT
  RunDates.Run_Date,
  T_D.[Total Defects],
  T_O.[Not Closed],
  T_C.[Closed]

FROM ((
  (SELECT Run_Date FROM T_C
   UNION
   SELECT Run_Date FROM T_O
   UNION SELECT Run_Date FROM T_D) AS RunDates
   LEFT JOIN T_C ON RunDates.Run_Date = T_C.Run_Date)
   LEFT JOIN T_O ON RunDates.Run_Date = T_O.Run_Date)
   LEFT JOIN T_D ON RunDates.Run_Date = T_D.Run_Date
于 2013-06-17T16:44:14.127 回答