10 filmes mais locados por cliente
21/07/2015
0
tenho uma tabela de locação e outra para seus itens, ou seja filmes.
gostaria de gerar um relatório que traga os 10 filmes mais locados por cliente
estou executando este select
mas só traz os dez primeiros filmes mais locados da tabela de itens da locação, sem trazer os 10 filmes mais locados para cada cliente
o que fazer para resolver este sql?
gostaria de gerar um relatório que traga os 10 filmes mais locados por cliente
estou executando este select
select first 10 il.cod_produto, p.nome as produto, cl.nome as cliente, count(il.cod_produto) as nLocacao from itens_locacao il inner join locacao l on l.cod_locacao = il.cod_locacao inner join cliente cl on cl.cod_cliente = l.cod_cliente inner join produto p on p.cod_produto = il.cod_produto group by il.cod_produto, p.nome, cl.nome order by 4 desc
mas só traz os dez primeiros filmes mais locados da tabela de itens da locação, sem trazer os 10 filmes mais locados para cada cliente
o que fazer para resolver este sql?
Cristiane
Curtir tópico
+ 0
Responder
Posts
21/07/2015
Fernando C
supondo que na tabela "locacoes" vc tenha os ids dos clientes e os ids dos filmes...
select count(*) from locacoes group by id_cliente having count(*) > 9
Responder
28/07/2015
Cristiane
não, na verdade esta em tabelas diferentes. o id do cliente está na tabela locação e o id do filme na tabela itens locação.
vou procurar me expressar melhor:
estou fazendo um relatório q, informando ou não o cliente desejado, traga os 10 filmes locados.
quando o cliente é informado, usando o first 10 ou count dá certo, pq fica assim no relatório:
Cliente - Cris
cod. filme descrição nº de locação
1 ela é o cara 4
2 fascinação 3
... -> mais 8 filmes
quando o cliente não é informado trago todos os clientes e os 10 filmes mais locados, ficando assim:
Cliente - Cris
cod. filme descrição nº de locação
1 ela é o cara 4
2 fascinação 3
... -> mais 8 filmes
Cliente - Antônio
cod. filme descrição nº de locação
1 ela é o cara 4
2 fascinação 3
... -> mais 8 filmes
Cliente - Flávia
cod. filme descrição nº de locação
1 ela é o cara 4
2 fascinação 3
... -> mais 8 filmes
e assim por diante
parece q com um select no inner ou left join pode dar certo, mas não consegui nada ainda.
vou procurar me expressar melhor:
estou fazendo um relatório q, informando ou não o cliente desejado, traga os 10 filmes locados.
quando o cliente é informado, usando o first 10 ou count dá certo, pq fica assim no relatório:
Cliente - Cris
cod. filme descrição nº de locação
1 ela é o cara 4
2 fascinação 3
... -> mais 8 filmes
quando o cliente não é informado trago todos os clientes e os 10 filmes mais locados, ficando assim:
Cliente - Cris
cod. filme descrição nº de locação
1 ela é o cara 4
2 fascinação 3
... -> mais 8 filmes
Cliente - Antônio
cod. filme descrição nº de locação
1 ela é o cara 4
2 fascinação 3
... -> mais 8 filmes
Cliente - Flávia
cod. filme descrição nº de locação
1 ela é o cara 4
2 fascinação 3
... -> mais 8 filmes
e assim por diante
parece q com um select no inner ou left join pode dar certo, mas não consegui nada ainda.
Responder
Clique aqui para fazer login e interagir na Comunidade :)