Problema com Group By

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
douglasfabiano
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Ter, 06 Dez 2011 9:31 am

bom dia pessoal,
vejam se podem me ajudar, temos uma aplicação que roda em 4 banco de dados(Ms-SQL, PostgreSQL, FIrebird e Oracle) e estou com problema em um comando basico e queria entender por que so acontece no Oracle. o comando é:

Selecionar tudo


SELECT COUNT(*) AS QTREDUCAO ,
(SELECT COUNT(*) FROM IMPFISCAL WHERE FLATIVO=1 ) AS QTIMPFISCAL
FROM REDUCAO
WHERE (REDUCAO.DTMOVIMENTO = '06/11/2011') AND (REDUCAO.CDEMPRESA IN (4) )

esse comando não roda e da erro:

Selecionar tudo

ORA-00937: não é uma função de grupo de grupo simples
00937. 00000 -  "not a single-group group function"
*Cause:    
*Action:
Erro na linha: 2 Coluna: 8
Caso eu coloque um group by qual quer funciona, por exemplo

Selecionar tudo

GROUP BY REDUCAO.DTMOVIMENTO, OU 
GROUP BY REDUCAO.CDEMPRESA, OU 
GROUP BY 1 
ATE ASSIM FUNCIONA group by ' '.
alguém CONSEGUE ME EXPLICAR A LOGICA DISSO.

Abraços.

Douglas
RafaelFantin
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Qui, 15 Dez 2011 4:01 pm

Tente utilizar:

Selecionar tudo

SELECT QTIMPFISCAL, QTREDUCAO
  FROM (SELECT COUNT(*) QTIMPFISCAL FROM IMPFISCAL WHERE FLATIVO=1)
     , (SELECT COUNT(*) QTREDUCAO FROM REDUCAO WHERE (REDUCAO.DTMOVIMENTO = '06/11/2011') AND (REDUCAO.CDEMPRESA IN (4)))
Responder
  • Informação