Cita:
Esta es la solución con ORACLEObtener las parejas de sucursales (idSucursal1, idSucursal2) que tienen exactamente las mismas películas, sin considerar la cantidad de ejemplares que existen en cada una de ellas.
ATENCIÓN: no deben devolverse parejas simétricas.
(La realidad se basa en un video club).
Las tablas para esta consulta sin las siguientes:
-inventario (id_pelicula, id_sucursal, cant_ejemplares)
Representa las películas que están catalogadas en cada sucursal.
-peliculas (id_pelicula, titulo, descripcion, anio, id_idioma_original, duracion,
duracion_alquiler, costo_alquiler, costo_reemplazo, clasificacion, contenidos_extra)
ATENCIÓN: no deben devolverse parejas simétricas.
(La realidad se basa en un video club).
Las tablas para esta consulta sin las siguientes:
-inventario (id_pelicula, id_sucursal, cant_ejemplares)
Representa las películas que están catalogadas en cada sucursal.
-peliculas (id_pelicula, titulo, descripcion, anio, id_idioma_original, duracion,
duracion_alquiler, costo_alquiler, costo_reemplazo, clasificacion, contenidos_extra)
Código SQL:
Ver original
WITH stock AS ( SELECT id_sucursal sucursal, MAX( sys_connect_by_path( id_pelicula, ',') ) pelicula FROM (SELECT inventario.*, ROW_NUMBER() OVER (partition BY id_sucursal ORDER BY id_pelicula) rn FROM inventario) START WITH rn = 1 CONNECT BY prior rn = rn-1 AND prior id_sucursal = id_sucursal GROUP BY id_sucursal ) SELECT a.sucursal, b.sucursal FROM stock a, stock b WHERE a.pelicula = b.pelicula AND a.sucursal <> b.sucursal
El post original está Aquí
Apenas estoy leyendo acerca de las consultas recursivas que creo sería la opción de SQL Server para el operador CONNECT BY PRIOR de ORACLE. Como comenté este no es un problema que yo haya planteado, pero no me quiero quedar con la duda si se puede o no hacer con SQL Server.
Cualquier comentario será bienvenido.
Saludos
Leo.