返回多个相同行的SQL-“;查询需要将汇总统计数据与原始数据重新合并。”-
也许我的问题有点傻,但我一直在寻找一些视频和说明,但找不到答案 我正在SaS环境下运行下面的SQL代码。我得到了超过8k个相同的行。我对所有未汇总的数据使用“分组依据” 谢谢各位返回多个相同行的SQL-“;查询需要将汇总统计数据与原始数据重新合并。”-,sql,sas,Sql,Sas,也许我的问题有点傻,但我一直在寻找一些视频和说明,但找不到答案 我正在SaS环境下运行下面的SQL代码。我得到了超过8k个相同的行。我对所有未汇总的数据使用“分组依据” 谢谢各位 PROC SQL; CREATE TABLE WORK.TARIFAS AS SELECT T1.NR_DOC_SIS_OGM AS CONVENIO, T1.CD_CLI_VCLD_CT_OGM AS MCI, T2.SEGMENTO AS SEGMENTO, SUM(T1.VL_
PROC SQL;
CREATE TABLE WORK.TARIFAS AS
SELECT
T1.NR_DOC_SIS_OGM AS CONVENIO,
T1.CD_CLI_VCLD_CT_OGM AS MCI,
T2.SEGMENTO AS SEGMENTO,
SUM(T1.VL_OPR_CBR_TARF) FORMAT=COMMAX19.2 AS SUM_VL_COBRADO
FROM DB2TFA.CBR_TARF_REC T1
INNER JOIN WORK.CONVENIOS T2 ON (T2.CONVENIO = T1.NR_DOC_SIS_OGM)
WHERE
T1.NR_CBR_TARF_AGPD = 0
AND T1.CD_PRD_CBR_TARF IN (15)
AND T1.CD_SPDT_CBR_TARF IN (3,6)
AND T1.DT_EFTC_CBR_TARF BETWEEN '01OCT2020'D AND '31OCT2020'D
AND CONVENIO = 86081
GROUP BY
CONVENIO,
MCI,
SEGMENTO;
QUIT;
如果它们完全相同,可以通过指定
select distinct
而不是select
来解决:
PROC SQL;
CREATE TABLE WORK.TARIFAS AS
SELECT DISTINCT
T1.NR_DOC_SIS_OGM AS CONVENIO,
...
问题在于
convenrio
也是表中的一列,这一点很清楚,因为它位于WHERE
子句中。因此,选择
键和分组依据
键不匹配
因此,请使用表达式而不是别名:
GROUP BY T1.NR_DOC_SIS_OGM T1.CD_CLI_VCLD_CT_OGM, T2.SEGMENTO
您确定SELECT仅列出三个组变量和一个摘要统计信息吗?如果是这样,那么PROC SQL可能认为GROUP BY中列出的三个变量与SELECT中列出的三个变量不同 您可以使用组中的职位编号,并避免因拼写错误而造成混淆的风险
group by 1,2,3
谢谢各位。这工作做得很好!