Oracle - Duda consulta

 
Vista:
sin imagen de perfil

Duda consulta

Publicado por Francisco (1 intervención) el 04/11/2011 11:13:55
Soy novato ene sto de sql asi que no estoy muy puesto, estoy con una base de datos de peliculas, clientes y alquiler y quiero hacer una consulta que me diga quien alquila mas.
Hago esto SELECT DNI_CLIENTE,COUNT(*) FROM ALQUILER GROUP BY DNI_CLIENTE; que me da el numero de alquileres totales; Hago la relacion
SELECT CLIENTES.NOMBRE FROM CLIENTES INNER JOIN (ALQUILER INNER JOIN PELICULAS ON PELICULAS.COD_PELICULA=ALQUILER.CODIGO_PELICULA) ON ALQUILER.DNI_CLIENTE=CLIENTES.DNI_CLIENTE;
Y me falta saber el maximo el cual sacaria de la primera consulta pero creo que eso se hace mejor con una tabla temporal, ¿alguien me puede decir como se hace una abla temporal a traves de la select de arriba? o una solucion mejor si la sabeis, uso oracle 11g.
He llegado a sacar esto pero me falla me da error en linea uno:
SELECT CLIENTES.NOMBRE FROM CLIENTES INNER JOIN (ALQUILER INNER JOIN PELICULAS ON PELICULAS.COD_PELICULA=ALQUILER.CODIGO_PELICULA) ON ALQUILER.DNI_CLIENTE=CLIENTES.DNI_CLIENTE WHERE ALQUILER.DNI_CLIENTE=(SELECT DNI_CLIENTE FROM (SELECT DNI_CLIENTE, COUNT(DNI_CLIENTE) INTO TEMPORAL FROM ALQUILER GROUP BY DNI_CLIENTE) WHERE COUNT(TEMPORAL.DNI_CLIENTE)=(SELECT MAX(DNI_CLIENTE) FROM TEMPORAL GROUP BY COUNT(TEMPORAL.DNI_CLIENTE));
Gracias a todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder