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论坛文章深入到了您需要的深度。=)