
Buscar los máximos o los más de algo
Publicado por Maria (1 intervención) el 24/02/2018 13:39:37
Saludos,
Me gustaría saber si con esta forma de hacerlo obtendría el mismo resultado.
El problema con el primer código es que no termino de entender el uso del ALL. Creo que quiere decir que la condición se cumple si Facturacion es igual o mayor que la Facturacion de todas las combinaciones posibles de los Clientes que pertenecen a la misma Provincia. Que seria igual que usar una vista para encontrar el máximo de cada provincia.
Gracias de antemano, no tengo las tablas para comprobar si funciona.
1
2
3
4
5
6
SELECT Clientes.Nombre AS clientes, SUM(DetallesFactura.Unidades*DetallesFactura.Precio) AS Facturacion, Clientes.Provincia AS P
FROM DetallesFactura INNER JOIN (Facturas INNER JOIN Clientes AS C ON Facturas.IdCliente=Clientes.IdCliente)
ON DetallesFactura.IdFactura=Facturas.IdFactura GROUP BY Clientes.Nombre HAVING Facturacion >= ALL (
SELECT SUM(DetallesFactura.Unidades*DetallesFactura.Precio) FROM DetallesFactura INNER JOIN (Facturas INNER JOIN Clientes
ON Facturas.IdCliente=Clientes.IdCliente) ON DetallesFactura.IdFactura=Facturas.IdFactura WHERE Clientes.Provincia = C.Provincia
GROUP BY Clientes.IdCliente)
Me gustaría saber si con esta forma de hacerlo obtendría el mismo resultado.
1
2
3
4
5
6
7
CREATE VIEW VISTA AS
SELECT C.Nombre AS Cliente, C.Provincia, SUM(D.Unidades*D.Precio) AS Facturacion FROM DetallesFactura AS D
INNER JOIN (Facturas AS F INNER JOIN Clientes AS C ON F.IdCliente = C.IdCliente) ON F.Id.Factura = D.IdFactura
GROUP BY Cliente
SELECT V.Cliente, V.Provincia, V.Facturacion FROM VISTA AS V WHERE Facturacion = (SELECT MAX(Facturacion) FROM Vista
WHERE V.Provincia = Vista.Provincia)
El problema con el primer código es que no termino de entender el uso del ALL. Creo que quiere decir que la condición se cumple si Facturacion es igual o mayor que la Facturacion de todas las combinaciones posibles de los Clientes que pertenecen a la misma Provincia. Que seria igual que usar una vista para encontrar el máximo de cada provincia.
Gracias de antemano, no tengo las tablas para comprobar si funciona.
Valora esta pregunta


0