GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Mysql pesquisa dentro de outra pesquisa

mysql
programação
Tags: #<Tag:0x00007f725ef85390> #<Tag:0x00007f725ef85250>

#1

Alo gente tudo bem? Ajuda aeeeeee estou tentando fazer uma pesquisa na base de dados e ele me da o erro:

mysql double select operand should contain 1 columns

Eu investiguei sobre o erro e entendi que a pesquisa nao pode devolver duas colunas em cada select.

Mas o problema e que eu preciso de todos os campos.

O que eu queria fazer?

Quero pesquisar numero de eventos agrupados por ano e na mesma query numero de eventos agrupados por mes tambem.

select (select YEAR(dataEventoInicio) as Ano, COUNT(dataEventoInicio) as totalEventos from evento GROUP BY YEAR(dataEventoInicio)),  (select MONTH(dataEventoInicio) as Mes, COUNT(dataEventoInicio) as totalEventosMes from evento GROUP BY MONTH(dataEventoInicio)) from evento

NOTA: quando eu faco apenas por ano ele aceita normalmente soque eu quero mes e ano como se fossem duas pesquisas diferentes mas na mesma QUERY

OBRIGADO DESDE JA


#2

Opa

Já tentou usar UNION ao invés de subselect?

Ou

http://blog.tiagopassos.com/2010/07/20/realizando-duas-ou-mais-consultas-com-union-e-union-all-no-mysql/


#3

Alooo, Ja sim mas o Union coloca tudo em uma mesma coluna e nao exatamente isso que qeu queria queria em colunas diferentes.

POr enquanto estou fazendo algo mais ou menos assim e deu certo:

select (select YEAR(dataEventoInicio)) as Ano, (select MONTHNAME(dataEventoInicio)) as Mes, (select COUNT(dataEventoInicio)) as totalEventosfrom from evento GROUP BY YEAR(dataEventoInicio), MONTHNAME(dataEventoInicio)

ou

select YEAR(dataEventoInicio) as Ano, MONTHNAME(dataEventoInicio) as Mes, COUNT(dataEventoInicio) as totalEventos from evento GROUP BY YEAR(dataEventoInicio), MONTHNAME(dataEventoInicio)

os dois estao dando certo

Obrigado :slight_smile: