COUNT输出多行

时间:2016-10-25 12:11:49

标签: sql tsql

使用count函数我的SQL查询出现问题。

当我没有内连接时,它会有55行。当我将内部联接添加到我的查询中时,它会增加很多内容。它突然变成了102排。

这是我的SQL查询:

SELECT COUNT([fmsStage].[dbo].[File].[FILENUMBER])
FROM [fmsStage].[dbo].[File]
INNER JOIN [fmsStage].[dbo].[Container]
    ON [fmsStage].[dbo].[File].[FILENUMBER] = [fmsStage].[dbo].[Container].[FILENUMBER]
WHERE [fmsStage].[dbo].[File].[RELATIONCODE] = 'SHIP02'
  AND [fmsStage].[dbo].[Container].DELIVERYDATE BETWEEN '2016-10-06' AND '2016-10-08'
GROUP BY [fmsStage].[dbo].[File].[FILENUMBER]

另外,我必须在TOP 1语句中执行SELECT,因为它返回51行,其中包含随机数。 (它们可能不是随机的,但我无法弄清楚它们是什么。)

我需要做些什么才能计算[fmsStage].[dbo].[file].[FILENUMBER]的行数?

2 个答案:

答案 0 :(得分:2)

首先,您的查询会更加清晰:

SELECT COUNT(f.[FILENUMBER])
FROM [fmsStage].[dbo].[File] f INNER JOIN
     [fmsStage].[dbo].[Container] c
    ON v.[FILENUMBER] = c.[FILENUMBER]
WHERE f.[RELATIONCODE] = 'SHIP02' AND
      c.DELIVERYDATE BETWEEN '2016-10-06' AND '2016-10-08';

不需要GROUP BY。否则,每个文件编号只需要一行,这看起来并不像总计数那么有用。

注意:您可能需要COUNT(DISTINCT f.[FILENUMBER])。你的问题没有提供足够的信息来做出判断。

答案 1 :(得分:0)

只需删除GROUP BY子句

即可
for (i in list) {
  i$x <- as.Date(i$x)
}