Hola Leocap:
Veo que este fue el primer post que publicas, así es que vale hacer algunas recomendaciones antes de proceder a ayudarte.
Primero, antes de publicar algún post utiliza la
HERRAMIENTA DE BÚSQUEDA del foro, o pregunta a SAN
GOOGLE, es muy probable que alguien más ya haya tratado el tema, por lo que no abría necesidad de publicar un nuevo tema.
Segundo, si después de buscar por tu cuenta sigues sin encontrar una solución y decides publicar un tema nuevo
PON ALGO DEL CÓDIGO QUE HAZ INTENTADO DESARROLLAR. En tu post dices que lo intentaste hacer con MAX(cantidad_vendida) lo cual es correcto, por lo tanto si hubieras puesto el código que intentaste hacer sólo faltaría afinar la sentencia.
A ahora sí entrando en materia, este tipo de consultas se ha tratado muchas veces en este foro y hay muchas formas de obtener lo que quieres, esta sería una de esas formas:
Código SQL:
Ver originalDECLARE @tabla TABLE (sucursal INT, producto VARCHAR, cantidad_vendida INT)
INSERT INTO @tabla VALUES (1, 'a', 15)
INSERT INTO @tabla VALUES (1, 'b', 22)
INSERT INTO @tabla VALUES (1, 'c', 5)
INSERT INTO @tabla VALUES (2, 'a', 12)
INSERT INTO @tabla VALUES (2, 'b', 51)
SELECT T1.* FROM @Tabla T1 INNER JOIN
(SELECT sucursal, MAX(cantidad_vendida) max_cantidad_vendida FROM @tabla GROUP BY sucursal) T2 ON
T1.sucursal = T2.sucursal AND
T1.cantidad_vendida = T2.max_cantidad_vendida
ORDER BY T1.sucursal
Si observas se hace una subconsulta con sucursal y max(cantidad_vendida), agrupando por sucursal para obtener esto:
Código:
sucursal max_cantidad_vendida
----------- --------------------
1 22
2 51
Con este resultado se hace un INNER JOIN sobre tu tabla de datos y listo.
Te repito que hay varias formas de obtener este resultado, dale un vistazo y si necesita ayuda lo comentas en el foro.
Saludos.
Leo.