sql - COUNT 正在输出多行

标签 sql tsql

我在使用计数函数的 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]

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

我需要做什么才能让它只计算来自 [fmsStage].[dbo].[file].[FILENUMBER] 的行数?

最佳答案

首先,您的查询会像这样更清楚:

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])。您的问题没有提供足够的信息来做出判断。

关于sql - COUNT 正在输出多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40239637/

相关文章:

sql - 永无止境的查询

sql-server - 为什么 Intellisense 在 SQL Server Management Studio 2008 R2 中不起作用?

sql-server - 用于保存整数列表的 SQL 变量

MySQL - 始终返回恰好 n 条记录

SQL 将关系表合并为单独的列

c# - 指定的转换无效 C# Entity Framework

SQL - 如何删除两个相互引用的实体

SQL 服务器 : Get data for only the past year

c# - 查询抛出 "IndexOutOfRange"

sql - 必须有一种方法可以删除 SQL Server 中的数据而不会使日志过载