SQL(Oracle):分组到某些列

时间:2017-10-05 09:00:29

标签: sql oracle group-by

问题如下:我需要显示每位客户付款的编号(使用COUNT()功能)(使用代码 codcli 列标识),但已过滤由某些部门( tipope 列)。正如您在图像中看到的那样,数字显示但在各部门之间分开,而我希望每个客户只显示一次。

如何在不分割付款的情况下进行过滤?

enter image description here

2 个答案:

答案 0 :(得分:2)

也许我没有正确理解你的问题,但为什么不简单:

SELECT CODCLI, COUNT(*) AS SOMMA_BONIFICI
FROM MOV
WHERE TIPOPE IN ( 'VE5', ' VE9', 'PR5', 'PR9')
GROUP BY CODCLI
ORDER BY CODCLI;

答案 1 :(得分:0)

请勿在外部查询中包含分部(Tipope),并在子查询中包含COUNT

SELECT CODCLI, SUM(SELECT COUNT(sub.CODCLI) 
                   FROM mov sub
                   WHERE sub.TIPOPE = TIPOPE 
                   GROUP BY sub.CODCLI) AS SOMMA_BONIFICI
FROM mov
WHERE TIPOPE IN ('VE5', ' VE9', 'PR5', 'PR9')
GROUP BY CODCLI
ORDER BY CODCLI

哪个会输出:

CODCLI   SOMMA_BONIFICI
AA200078 16
AA200300 10
AA200412 3
AA200309 9