SQL com quot;First count e left joinquot;
Amigos, estou com mais um problema preciso fazer uma consulta que me retorne os 10 filmes mais locados nos ultimos 15 dias
a tabela LOCACAODET GRAVA todos os detalhes das locações
A tabela Filmes grava os dados do filme
pra trazer os 10 ultimos filmes ta beleza isso aqui funciona
Código:
select first 10 idproduto, count(idproduto) qtdlocacoes
from locacaodet where FINALIDADE = ´LOCAÇÃO´ and datalocacao between (current_date - 15) and current_date group by idproduto order by 2 desc
so que isso me traz o codigo do filme e a quantidade locada gostaria que me retornasse tambem o nome do filme que esta na ´tabela filmes´ mas nao to conseguindo
tentei assim, mais nao da certo da um erro ´invalid colunm reference´
Código:
select first 10 locacaodet.idproduto, count(idproduto) qtdlocacoes, filmes.nome
from locacaodet left join filmes on locacaodet.idproduto = filmes.id where locacaodet.FINALIDADE = ´LOCAÇÃO´ and locacaodet.datalocacao between (current_date - 15) and current_date group by idproduto order by 2 desc
sera que alguem pode me ajudar
desde ja agradeço....
Obrigado....
Delphi 7.0 e Firebird 1.5
a tabela LOCACAODET GRAVA todos os detalhes das locações
A tabela Filmes grava os dados do filme
pra trazer os 10 ultimos filmes ta beleza isso aqui funciona
Código:
select first 10 idproduto, count(idproduto) qtdlocacoes
from locacaodet where FINALIDADE = ´LOCAÇÃO´ and datalocacao between (current_date - 15) and current_date group by idproduto order by 2 desc
so que isso me traz o codigo do filme e a quantidade locada gostaria que me retornasse tambem o nome do filme que esta na ´tabela filmes´ mas nao to conseguindo
tentei assim, mais nao da certo da um erro ´invalid colunm reference´
Código:
select first 10 locacaodet.idproduto, count(idproduto) qtdlocacoes, filmes.nome
from locacaodet left join filmes on locacaodet.idproduto = filmes.id where locacaodet.FINALIDADE = ´LOCAÇÃO´ and locacaodet.datalocacao between (current_date - 15) and current_date group by idproduto order by 2 desc
sera que alguem pode me ajudar
desde ja agradeço....
Obrigado....
Delphi 7.0 e Firebird 1.5
Marcusbraga
Curtidas 0
Respostas
Marcusbraga
17/05/2006
preciso que o sql retorne os 10 filmes mais locados nos ultimos 15 dias
usando a tabela locacaodet e a tabela filmes para q me traga o nome do filme tambem
Pesquisando pelo forum consegui chegar até aqui
Se eu tiro o group by funciona perfeito com ele da esse erro
´invalid colunm reference´ o que tem de errado no meu ´group by´ ja tentei de varias formas, no banco de dados o idproduto da tabela locacaodet é um chave estrangeira do id da tabela filmes não sei o porque desse erro.
Obrigado....
Delphi 7.0 e Firebird 1.5
usando a tabela locacaodet e a tabela filmes para q me traga o nome do filme tambem
Pesquisando pelo forum consegui chegar até aqui
select first 10 loc1.idproduto, fil1.nome, (select count(loc2.idproduto) from locacaodet loc2 inner join filmes fil2 on (loc2.idproduto = fil2.id) where loc2.idproduto = loc1.idproduto) quantidade from locacaodet loc1 left join filmes fil1 on (loc1.idproduto = fil1.id) where loc1.FINALIDADE = ´LOCAÇÃO´ and loc1.datalocacao between (current_date - 15) and current_date group by loc1.idproduto order by 3 desc
Se eu tiro o group by funciona perfeito com ele da esse erro
´invalid colunm reference´ o que tem de errado no meu ´group by´ ja tentei de varias formas, no banco de dados o idproduto da tabela locacaodet é um chave estrangeira do id da tabela filmes não sei o porque desse erro.
Obrigado....
Delphi 7.0 e Firebird 1.5
GOSTEI 0
Cabreu.jr
17/05/2006
Amigo, tente colocar o campo que traz o nome do filme também no group by, isso deve resolver o seu erro, pois todas as colunas que vc quiser exibir no select e não fizerem parte de nenhuma funcao(Ex: COUNT(), SUM(),etc),devem estar no group by
GOSTEI 0
Marcusbraga
17/05/2006
Obrigado cabreu.jr era isso mesmo
valeu demais....
valeu demais....
GOSTEI 0