Consulta sql devoloper
Boa tarde!
Preciso realizar uma consulta em uma tabela, na qual retorne a quantidade de registros determinado por mês, e tipo do porte do animal (o banco de dados é de um petshop, na qual o animal é cadastrado em uma tabela, e na outro o seu porte, pequeno, medio, e etec). a consulta deveria retornar: abril,50,grande.
Na tb_prest_servicos, temos os serviços realizados, e data (que esta no formato dd/mm/yyyy), que esta ligada com a tb_animal, que por sua vez esta ligada com
tb_porte (onde contem o porte do animal).
Preciso de ajuda pra relizar essa consulta pois não faço ideia de como realiza-la.
agradeço desde já!
Preciso realizar uma consulta em uma tabela, na qual retorne a quantidade de registros determinado por mês, e tipo do porte do animal (o banco de dados é de um petshop, na qual o animal é cadastrado em uma tabela, e na outro o seu porte, pequeno, medio, e etec). a consulta deveria retornar: abril,50,grande.
Na tb_prest_servicos, temos os serviços realizados, e data (que esta no formato dd/mm/yyyy), que esta ligada com a tb_animal, que por sua vez esta ligada com
tb_porte (onde contem o porte do animal).
Preciso de ajuda pra relizar essa consulta pois não faço ideia de como realiza-la.
agradeço desde já!
Filipe Romano
Curtidas 0
Melhor post
Filipe Romano
27/11/2017
Fiz as alterações e deu "missing expression", fiz mais algumas alterações e deu "MONTH": identificador inválido".
o primeiro código com as alterações que você falou ficou assim:
o que eu alterei ficou assim:
o primeiro código com as alterações que você falou ficou assim:
SELECT YEAR((DATA_ENTRADA)) AS ANO ,
MONTH(DATA_ENTRADA) AS MES
,[PORTE]
, COUNT(SERVICO_ID) AS QUANTIDADE
FROM TB_PREST_SERVICOS
INNER JOIN TB_ANIMAL ON TB_PREST_SERVICOS.ANIMAL_ID = TB_ANIMAL.ANIMAL_ID
INNER JOIN TB_TIPO_ANIMAL ON TB_PREST_SERVICOS.ANIMAL_ID = TB_TIPO_ANIMAL.ANIMAL_ID
GROUP BY YEAR((DATA_ENTRADA)) AS ANO
, MONTH(DATA_ENTRADA) AS MES
, [PORTE];o que eu alterei ficou assim:
SELECT YEAR(DATA_ENTRADA) ,
MONTH(DATA_ENTRADA)
,TB_TIPO_ANIMAL.PORTE
, COUNT(SERVICO_ID)
FROM TB_PREST_SERVICOS
INNER JOIN TB_ANIMAL ON TB_PREST_SERVICOS.ANIMAL_ID = TB_ANIMAL.ANIMAL_ID
INNER JOIN TB_TIPO_ANIMAL ON TB_PREST_SERVICOS.ANIMAL_ID = TB_TIPO_ANIMAL.ANIMAL_ID
GROUP BY YEAR(DATA_ENTRADA)
, MONTH(DATA_ENTRADA)
,TB_TIPO_ANIMAL.PORTE;GOSTEI 2
Mais Respostas
Luiz Santos
26/11/2017
Bom dia Filipe.
Sua consulta ficaria mais ou menos assim.
Substitua as tags que eu coloquei pelos seus campos.
Grande abs
Sua consulta ficaria mais ou menos assim.
SELECT YEAR((CAMPO_DATA) AS ANO
, MONTH(CAMPO_DATA) AS MES
, [CAMPO_PORTE]
, COUNT(CAMPO_SERVICO) AS QUANTIDADE
FROM tb_prest_servicos
INNER JOIN tb_animal ON [COLUNAS PARA FAZER A LIGAÇÃO ENTRE AS TABELAS]
INNER JOIN tb_porte ON [COLUNAS PARA FAZER A LIGAÇÃO ENTRE AS TABELAS]
GROUP BY YEAR((CAMPO_DATA) AS ANO
, MONTH(CAMPO_DATA) AS MES
, [CAMPO_PORTE]
Substitua as tags que eu coloquei pelos seus campos.
Grande abs
GOSTEI 0
Filipe Romano
26/11/2017
Entao, eu preenchi ele assim:
porém deu erro de "missing right parenthesis", alguma ideia de onde eu errei na hora de preencher?
SELECT YEAR((DATA_ENTRADA) AS ANO
,
MONTH(DATA_ENTRADA) AS MES
, [PORTE]
, COUNT(SERVICO_ID) AS QUANTIDADE
FROM TB_PREST_SERVICOS
INNER JOIN TB_ANIMAL ON [ANIMAL_ID]
INNER JOIN TB_TIPO_ANIMAL ON [ANIMAL_ID]
GROUP BY YEAR((DATA_ENTRADA) AS ANO
, MONTH(DATA_ENTRADA) AS MES
, [PORTE];
porém deu erro de "missing right parenthesis", alguma ideia de onde eu errei na hora de preencher?
GOSTEI 0
Luiz Santos
26/11/2017
O right parentesis, está na primeira linha. Você tem 2 abrindo, a esquerda, e um fechando, a direita.
Mas o seu JOIN também vai dar erro.
Você, depois do ON, precisa colocar TB_PREST_SERVICOS.ANIMAL_ID = TB_ANIMAL.ANIMAL_ID
E no segundo ON TB_PREST_SERVICOS.ANIMAL_ID = TB_TIPO_ANIMAL.ANIMAL_ID
Faça essas modificações e veja se funciona.
Grande abs
Mas o seu JOIN também vai dar erro.
Você, depois do ON, precisa colocar TB_PREST_SERVICOS.ANIMAL_ID = TB_ANIMAL.ANIMAL_ID
E no segundo ON TB_PREST_SERVICOS.ANIMAL_ID = TB_TIPO_ANIMAL.ANIMAL_ID
Faça essas modificações e veja se funciona.
Grande abs
GOSTEI 0