Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server:Select和Join语句中的Sum(列)和count(列)_Sql Server_Select_Join_Count_Sum - Fatal编程技术网

Sql server SQL Server:Select和Join语句中的Sum(列)和count(列)

Sql server SQL Server:Select和Join语句中的Sum(列)和count(列),sql-server,select,join,count,sum,Sql Server,Select,Join,Count,Sum,我试图查询每个loyaltyID列在AnthemTxns_Jr中有多少交易,以及他们所有交易的总和。现在,当我运行这个脚本时,它说 找不到列“dbo”或用户定义函数或聚合“dbo.AnthemTxns_JR.count”,或者名称不明确 代码: Select DISTINCT dbo.ANTHEM_IDS_JR.loyaltyID, dbo.ANTHEM_IDS_JR.Military_Type,, dbo.ANTHEM_IDS_JR.Military_Date,

我试图查询每个
loyaltyID
列在AnthemTxns_Jr中有多少交易,以及他们所有交易的总和。现在,当我运行这个脚本时,它说

找不到列“dbo”或用户定义函数或聚合“dbo.AnthemTxns_JR.count”,或者名称不明确

代码:

Select DISTINCT 
   dbo.ANTHEM_IDS_JR.loyaltyID,   
   dbo.ANTHEM_IDS_JR.Military_Type,,
   dbo.ANTHEM_IDS_JR.Military_Date, 
   dbo.AnthemTxns_JR.count(CheckTotal), 
   dbo.AnthemTxns_JR.sum(CheckTotal)
From 
   dbo.ANTHEM_IDS_JR
JOIN 
   dbo.AnthemTxns_JR ON dbo.ANTHEM_IDS_JR.loyaltyID = dbo.AnthemTxns_JR.loyaltyID
WHERE  
   Military_Type = 'Active Duty' 
   AND ACTIVE = 1 
   AND datalength(dbo.ANTHEM_IDS_JR.Military_Date) > 0 
ORDER BY 
   loyaltyID;

试试这个。。。看起来您在select语句中有点混淆了

Select DISTINCT 
       dbo.ANTHEM_IDS_JR.loyaltyID,   
       dbo.ANTHEM_IDS_JR.Military_Type,
       dbo.ANTHEM_IDS_JR.Military_Date, 
       count(dbo.AnthemTxns_JR.CheckTotal) as CheckTotalCount, 
       sum(dbo.AnthemTxns_JR.CheckTotal) as CheckTotalSum
    From 
       dbo.ANTHEM_IDS_JR
    JOIN 
       dbo.AnthemTxns_JR ON dbo.ANTHEM_IDS_JR.loyaltyID = dbo.AnthemTxns_JR.loyaltyID
    WHERE  
       Military_Type = 'Active Duty' 
       AND ACTIVE = 1 
       AND datalength(dbo.ANTHEM_IDS_JR.Military_Date) > 0 
    Group by 
    dbo.ANTHEM_IDS_JR.loyaltyID, 
    dbo.ANTHEM_IDS_JR.Military_Type,    
    dbo.ANTHEM_IDS_JR.Military_Date  
    ORDER BY 
       loyaltyID;

您需要一个GROUPBY子句来关联函数count/sum。您能详细说明一下吗?我在脚本末尾插入了dbo.ANTHEM_IDS_JR.loyaltyID的
GROUP,但仍然收到一条错误消息运行此脚本时出错。错误表示,“Msg 8120,16级,状态1,第68行列'dbo.ANTHEM_IDS_JR.millitary_Type'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中”。我想我需要一个GROUPBY子句,但我不知道应该对哪些列进行分组。我进行了编辑。再试一次,看看它能做什么。这里有一个链接来解释为什么我将groupby添加到新代码中。成功了!非常感谢!我不想打扰你了解更多信息,但是你能解释一下为什么你在三列中选择了
groupby
dbo.ANTHEM\u IDS\u JR.loyaltyID,dbo.ANTHEM\u IDS\u JR.millitary\u Type,dbo.ANTHEM\u IDS\u JR.millitary\u Date
吗?你必须在groupby中包含非聚合项。阅读我发布的那篇文章,对其进行进一步的阐述。这篇Stack论坛文章深入到了您需要的深度。=)