Hola Link_OOT,
Entiendo tu pregunta y cual es tu problema.
El modelo que planteas esta bien.
Tabla Producto (con todos los datos del producto incluyendo codigo de barras y Id de departamento)
Tabla Deparmento (con todos los datos del departamento incluyendo Id de departamento)
Tabla Cesta (es la tabla que hace la relacion entre las otras dos)
Y para solucionar tu problema, lo que tenemos que hacer es:
1. cruzar las tres tablas correctamente y obtener un listado de todos los productos, los departamentos y las cantidad vendidas.
2. Ordenar las cantidad vendidas por departamento y traer el nombre de ese producto mas vendido.
Aqui un select para esto
Código SQL:
Ver originalSELECT NOMBRE_DEPARTAMENTO,
CODIGO_PRODUCTO,
CANTIDAD_VENDIDA,
ORDEN
FROM (
SELECT D.NOMBRE NOMBRE_DEPARTAMENTO,
C.COD_BARRAS CODIGO_PRODUCTO,
C.CANTIDAD CANTIDAD_VENDIDA,
ROW_NUMBER() OVER(PARTITION BY D.NOMBRE ORDER BY C.CANTIDAD DESC) ORDEN
FROM PRODUCTO P,
CESTA C,
DEPARTAMENTO D
WHERE P.COD_BARRAS= C.COD_BARRAS
AND P.ID_DEPARTAMENTO = D.ID_DEPARTAMENTO
)
WHERE ORDEN <= 3
Yo le puse los tres mas vendidos, pero se puede cambiar.
Link_OOT, espero verte de nuevo por aqui y que te sirva la consulta.
Te mando un saludo grande,
Mario.