我已经有了一个使用此名称的视图,并且目前效果很好。无论如何,我需要更多的过滤器...
我已经尝试过DISTINCT,但它不会影响结果。
:-)
实际结果显示N行以“ xxx”为COD_COMPLESSO,但我只需要一行COD_COMPLESSO ='xxx',另一行以COD_COMPLESSO ='yyy',依此类推...等等,我已经尝试添加在第一个和第二个SELECT(即使两个都选择)中都DISTINCT,但似乎没有用,请您能帮我吗?
答案 0 :(得分:0)
对于整个分组中的每个不同分组,您都将获得一行。如果您检查了N行中的每一行,您将在每一行中的这些列之一中找到不同的值。
GROUP BY
NOME_COMPLESSO, COD_COMPLESSO,
MESE, ANNO,
ID_BM, NOME_BM,
ID_FORNITORE, NOME_FORNITORE,
DATE_REQUEST;
如果每个COD_COMPLESSO只需要一行,则从此开始,并注意您将必须删除或更改SUM()。
GROUP BY COD_COMPLESSO
答案 1 :(得分:0)
大概,您想要这样的东西:
SELECT COD_COMPLESSO, NOME_COMPLESSO,
SUM(CASE WHEN COD_STATUS_CON = 'OPN' THEN 1 ELSE 0 END) AS aperto,
SUM(CASE WHEN COD_STATUS_CON = 'ONG' THEN 1 ELSE 0 END) AS in_corso,
SUM(CASE WHEN COD_STATUS_CON = 'CLO' THEN 1 ELSE 0 END) AS chiuso
FROM V_RQM_REQUEST_BM rqm
GROUP BY NOME_COMPLESSO, COD_COMPLESSO;
如果每个COD_COMPLESSO
只需要一行,则选择其他列是没有意义的。有多个值。你要哪个?如果您确实希望看到某些东西,请选择一个聚合函数。 。 。通常是MIN()
,MAX()
,AVG()
,COUNT()
或LISTAGG()
。
答案 2 :(得分:0)
谢谢大家的回答。现在,我正在处理这个问题:
h5dwrite_f
正如您所看到的,我已经添加了WHERE和ORDER BY,无论如何我现在无法对其进行测试,目前我不在办公室,明天要整理,我将发布结果。同时...欢迎提出建议:-)