SQL com quot;First count e left joinquot;

Delphi

17/05/2006

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


Marcusbraga

Marcusbraga

Curtidas 0

Respostas

Marcusbraga

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


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

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

Marcusbraga

17/05/2006

Obrigado cabreu.jr era isso mesmo

valeu demais....


GOSTEI 0
POSTAR