- Este tópico contém 4 respostas, 3 vozes e foi atualizado pela última vez 17 anos, 1 mês atrás por
bbarroso.
-
AutorPosts
-
30 de janeiro de 2009 às 3:22 pm #84981
bbarroso
ParticipantePrezados
Estou tentando criar uma query com uma subquery para retornar o números total de usuários e usuários ativos os dois resultados ordenados por ano, so que esta dando o erro ORA – 00913, alguém pode me ajudar, segue a query.
SELECT to_char(created, ‘YYYY’) ano,
COUNT(to_char(created, ‘YYYY’)) qtd
(sELECT to_char(created, ‘YYYY’) ano,
COUNT(to_char(created, ‘YYYY’)) qtd
FROM dba_users
group by (to_char(created, ‘YYYY’)))
FROM dba_users,
dbasgu.usuarios
WHERE cd_usuario = username
AND sn_ativo = ‘S’
GROUP BY to_char(created, ‘YYYY’)30 de janeiro de 2009 às 3:22 pm #84982bbarroso
Participante[quote=”bbarroso”:3alh0fv5]Prezados
Estou tentando criar uma query com uma subquery para retornar o números total de usuários e usuários ativos os dois resultados ordenados por ano, so que esta dando o erro ORA – 00913, alguém pode me ajudar, segue a query.
SELECT to_char(created, ‘YYYY’) ano,
COUNT(to_char(created, ‘YYYY’)) qtd
(sELECT to_char(created, ‘YYYY’) ano,
COUNT(to_char(created, ‘YYYY’)) qtd
FROM dba_users
group by (to_char(created, ‘YYYY’)))
FROM dba_users,
dbasgu.usuarios
WHERE cd_usuario = username
AND sn_ativo = ‘S’
GROUP BY to_char(created, ‘YYYY’)[/quote]Bruno Soares
Analista de Sistemas Jr30 de janeiro de 2009 às 4:02 pm #84985David Siqueira
ParticipanteMeu velho esse erro costuma aparecer quando tu possui mais de um registro pra retornar, e ambos são iguais, com a mesma clausula que tu esta usando, tente identificar se há duplicidade e qual é a duplicidade existente.
Elimine-a e faça mais uma vez sua query.ABcs.
David30 de janeiro de 2009 às 7:04 pm #84994Leonardo Litz
ParticipanteCara,
Seguint, nesta query temos alguns problemas…
1º – Na query principal, o agrupamento apenas contempla a coluna ano, onde deverá contemplar a coluna da subquery.
2º – Na sub-query, voce deverá listar apenas uma coluna, de forma que esta retorne apenas 1 registro. Dependendo de teu objetivo voce pode colocar um where nela filtrando por usuario. Mas de qualquer forma vc deverá tirar a listagem de uma dessas colunas.
Coisa do tipo:
SELECT to_char(created, ‘YYYY’) ano,
COUNT(to_char(created, ‘YYYY’)) qtd,(sELECT COUNT(to_char(created,'YYYY')) qtd2 FROM dba_users)FROM dba_users, dbasgu.usuarios
WHERE cd_usuario = username
AND sn_ativo = ‘S’
GROUP BY to_char(created, ‘YYYY’), (sELECT COUNT(to_char(created,’YYYY’)) qtd2
FROM dba_users)Vlw Leonardo Litz
30 de janeiro de 2009 às 7:59 pm #84996bbarroso
ParticipanteCara quase funcionou so na outra coluna e me mostra o total de usuários e não está agrupando por ano, ficou assim porque algumas condições não funcionaram.
SELECT to_char(created, ‘YYYY’) ano,
COUNT(to_char(created, ‘YYYY’)) qtd,
(SELECT COUNT(to_char(created, ‘YYYY’))
FROM dba_users)
–group by to_char(created, ‘YYYY’)
FROM dba_users, dbasgu.usuarios
WHERE cd_usuario = username
AND sn_ativo = ‘S’
GROUP BY to_char(created, ‘YYYY’) –, SELECT COUNT(to_char(created, ‘YYYY’)) FROM dba_users[quote=”Litz”:j3pqr5ii]Cara,
Seguint, nesta query temos alguns problemas…
1º – Na query principal, o agrupamento apenas contempla a coluna ano, onde deverá contemplar a coluna da subquery.
2º – Na sub-query, voce deverá listar apenas uma coluna, de forma que esta retorne apenas 1 registro. Dependendo de teu objetivo voce pode colocar um where nela filtrando por usuario. Mas de qualquer forma vc deverá tirar a listagem de uma dessas colunas.
Coisa do tipo:
SELECT to_char(created, ‘YYYY’) ano,
COUNT(to_char(created, ‘YYYY’)) qtd,(sELECT COUNT(to_char(created,'YYYY')) qtd2 FROM dba_users)FROM dba_users, dbasgu.usuarios
WHERE cd_usuario = username
AND sn_ativo = ‘S’
GROUP BY to_char(created, ‘YYYY’), (sELECT COUNT(to_char(created,’YYYY’)) qtd2
FROM dba_users)Vlw Leonardo Litz[/quote]
-
AutorPosts
- Você deve fazer login para responder a este tópico.