Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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_Sql Server - Fatal编程技术网

SQL Server聚合和求和

SQL Server聚合和求和,sql,sql-server,Sql,Sql Server,SQL查询有问题,似乎无法解决。我很确定我完全搞错了 基本上,我有PRVDR_NUM和ITM_VAL。我想总结相关的ITM_VAL,因此每个PRVDR_NUM只有一个“总结”的ITM_VAL[sumrimb是别名] PRVDR_NUM实际上在另一个表中;我使用两个表中的RPT_REC_NUM的内部联接来关联它 这里有一个非常不起作用的例子 SELECT PRVDR_NUM,SUM(ITM_VAL) as SumReimb FROM hha2011num INNER JOIN hha2011rp

SQL查询有问题,似乎无法解决。我很确定我完全搞错了

基本上,我有PRVDR_NUM和ITM_VAL。我想总结相关的ITM_VAL,因此每个PRVDR_NUM只有一个“总结”的ITM_VAL[sumrimb是别名]

PRVDR_NUM实际上在另一个表中;我使用两个表中的RPT_REC_NUM的内部联接来关联它

这里有一个非常不起作用的例子

SELECT  PRVDR_NUM,SUM(ITM_VAL) as SumReimb FROM hha2011num
INNER JOIN hha2011rpt ON hha2011num.RPT_REC_NUM = hha2011rpt.RPT_REC_NUM 
WHERE (WKSHT_CD='D000000' AND LINE_NUM = '01201') AND (CLMN_NUM='0100' OR CLMN_NUM='0200')

GROUP BY PRVDR_NUM,ITM_VAL ORDER BY ITM_VAL
我要求和的主要内容是CLMN_NUM 0100和0200,每个都有不同的项目值,我想将它们相加,然后按PRVDR_NUM分组

有什么建议吗

我在SQL中遇到的主要问题是组、聚合和计算字段。我不知道如何。。。把它绑在一起。我大约两天前开始学习SQL

在这一行下面编辑------------

这里有两个不同但应该是相同的查询

SELECT  RPT_REC_NUM,SUM(ITM_VAL) SumReimb FROM hha2011num
WHERE (WKSHT_CD='D000000' AND LINE_NUM = '01201') AND CLMN_NUM in('0100','0200')

GROUP BY RPT_REC_NUM ORDER BY SumReimb

SELECT  PRVDR_NUM,SUM(ITM_VAL) as SumReimb FROM hha2011num
INNER JOIN hha2011rpt ON hha2011num.RPT_REC_NUM = hha2011rpt.RPT_REC_NUM 
WHERE WKSHT_CD='D000000' AND LINE_NUM = '01201' AND CLMN_NUM in('0100','0200')
GROUP BY PRVDR_NUM ORDER BY SumReimb
现在;它们之间的大多数数据是相同的,只是其中一个比另一个多39个条目[最上面的一个]。这可能就是为什么第二个数据中的少数数据比我预期的要高出几个数量级的原因

SELECT  PRVDR_NUM,SUM(ITM_VAL) as SumReimb FROM hha2011num
INNER JOIN hha2011rpt ON hha2011num.RPT_REC_NUM = hha2011rpt.RPT_REC_NUM 
WHERE WKSHT_CD='D000000' AND LINE_NUM = '01201' AND CLMN_NUM in('0100','0200')
GROUP BY PRVDR_NUM ORDER BY PRVDR_NUM

请从group by和order by子句中删除ITM_VAL。另外,我在where子句中做了一个小改动,您可以使用“in”

来代替使用或检查列CLMN_NUM的值,为什么要按ITM_VAL进行分组和排序?你不能按你正在求和的东西分组,也不能按它排序。你的意思是按PRVDR\U NUM顺序按SUMRIMB分组吗或<代码>按Sumrimb DESC的PRVDR_NUM顺序分组?顺便说一句,请打一下给这些栏目命名的人。@AaronBertrand:Dollars to donuts和前大型机程序员给这些栏目命名lol@AaronBertrand您好,医疗保险/医疗补助费用报告。你可以像我现在在cms.gov上一样享受乐趣:)我过去用过,我得到的数据太高了。@user1741874然后显示示例数据和你期望的结果。如果结果太高,那是因为你的
连接
标准不完整,导致笛卡尔积,考虑到这个问题,上面的答案是正确的。请尝试
选择*
并删除上面的
分组依据
,以找出您的
加入
不足之处。@GOAT CO:您所说的不足是什么意思?我所要做的就是让PRVDR_NUM显示出来,而不是RPT_REC_NUM。[应该是一对一]我的意思是,如果它产生了笛卡尔积,它不是1:1,你的
,其中
标准也可能是错误的,并且不像你预期的那样限制,如果没有看到数据,很难判断。