1

SQL 查询有问题,似乎无法弄清楚。很确定我做错了。

基本上,我有 PRVDR_NUM 和 ITM_VAL。我想总结相关的 ITM_VALS,所以每个 PRVDR_NUM 只有一个“总结”ITM_VAL [SumReimb 是别名]。

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 中遇到的主要问题是 GROUP、聚合和计算字段。我不知道如何... 把它们联系在一起。我大约两天前开始学习 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 个条目 [Top one does]。这可能就是为什么第二个中只有少数数据比我预期的要高几个数量级的原因。

4

1 回答 1

2
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 列的值

于 2013-08-21T17:57:17.060 回答