内部联接中的SQL Group by Sum

时间:2015-03-13 12:55:48

标签: sql sql-server

我目前的查询:

SELECT dbo.INQUIRY.*, dbo.LINKS.*, dbo.TIMELOG.LOGMINS
FROM dbo.INQUIRY
  INNER JOIN dbo.LINKS ON dbo.INQUIRY.INQUIRY_ID = dbo.LINKS.INQUIRY_ID
  INNER JOIN dbo.TIMELOG ON dbo.INQUIRY.INQUIRY_ID = dbo.TIMELOG.INQUIRY_ID

这种关系是对许多时间日志的许多链接的一次查询。目前它将返回6行,INQUIRY_ID为71293,其中LOGMINS为行1,5行2,12,行3等。

我想要做的是将那个INQUIRYID的所有LOGMIN加起来并将其作为行的结果返回,这样我就不会得到6行,只有一行有总行。任何方向赞赏!

1 个答案:

答案 0 :(得分:1)

您需要在group by或聚合函数中选择所有字段。

这是基本的想法。

SELECT i.INQUIRY_ID (, other fields not aggregated)
    ,SUM(t.Logmins) [TotalLogMins]
FROM INQUIRY i
INNER JOIN LINKS l 
    ON i.INQUIRY_ID = l.INQUIRY_ID
INNER JOIN TIMELOG t 
    ON i.INQUIRY_ID = t.INQUIRY_ID
GROUP BY i.INQUIRY_ID (, other fields not aggregated)