Sql

Necesito una sentencia sql que para mi es muy complicada.
Tengo las siguientes tablas:
Clientes(código, nombre, apellidos)
libros(codigo,categoria (cod_categoria),titulo,precio)
categorias(codigo,nombre)
ventas(cliente(cod_cliente),producto(cod_libro),cantidad,fecha)
la sentancia es:
- La persona que más ha gastado en cada mes

1 respuesta

Respuesta
1
Lo primero, es que creo firmemente que la tabla de ventas no la tienes bien estructurada. Te faltaría el campo Precio. ¿Por qué? Muy sencillo.. estás seguro, completamente seguro... ¿qué a todos los clientes SIEMPRE le aplicarás el precio que indica el libro sin ningún tipo de descuento? ¿Estás complemntamente seguro de que NUNCA modificarás el precio del libro?
Si tu respuesta a las dos preguntas es que SI, tu tabla de ventas es correcta. En caso contrario.. evidentemente no están bien. Campos que yo agregaría: Precio y Descuento.
En cuanto a la consulta SQL en tu formato de datos sería como sigue:
SELECT Clientes.Codigo, Clientes.Nombre, Month(Ventas.Fecha) AS QueMes, Year(Ventas.Fecha) AS QueAño Sum(Ventas.Cantidad * Libros.Precio) AS Ventas,
FROM (Ventas INNER JOIN Libros ON Ventas.Codigo = Libros.Codigo) INNER JOIN Clientes ON Ventas.Cliente = Clientes.Codigo
GROUP BY Clientes.Codigo, Clientes.Nombre, Month(Ventas.Fecha), Year(Ventas.Fecha);
Espero que te sirva.
Saludos.
Jordi Pérez i Madern
Mataró (Barcelona)
Perdona que te moleste tanto, pero esto para mi es un poco complicado.
Esta sql casi da lo que yo quiera:
Solo quiero que me salga la persona, el mes y año, la persona que más ha gastado, con lo que me has mandado salen todas las personas incluidas las que menos han gastado.
Un saludo y perdón por las molestias
Gracias
Prueba con esta instrucción...
SELECT Top 1 Clientes.Codigo, Clientes.Nombre, Month(Ventas.Fecha) AS QueMes, Year(Ventas.Fecha) AS QueAño Sum(Ventas.Cantidad * Libros.Precio) AS Ventas,
FROM (Ventas INNER JOIN Libros ON Ventas.Codigo = Libros.Codigo) INNER JOIN Clientes ON Ventas.Cliente = Clientes.Codigo
GROUP BY Clientes.Codigo, Clientes.Nombre, Month(Ventas.Fecha), Year(Ventas.Fecha) ORDER BY (Ventas.Cantidad * Libros.Precio) DESC;
Saludos...
Jordi Pérez i Madern
Mataró (Barcelona)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas