Cita:
Iniciado por ingluise No se por qué, en todos los foros uno pregunta algo, y siempre creen que uno espera le solucionen todo, si lo pregunto es porque he intentado resolverlo con anticipacion. La respuesta que me dieron inicialmente hace lo mismo que lo que ya habia hecho en el siguiente codigo SQL:
Hola de nuevo ingluise:
Lo que pones en tu último post, explicando la salida y poniendo algo de código ES MUY DIFERENTE a poner simplemente:
Cita: Mostrar el nombre y el precio del articulo mas costoso de cada categoria.
Articulo: idart, nomart, precio, idcat
Categoria: idcat, nomcat
Es decir, en el primer post ni siguiera tienes la amabilidad de pedir ayuda, simplemente pones un texto y tal pareciera que quisieras que nosotros adivináramos todo. En mi post anterior te pedía que revisaras en el foro alguna otra respuesta sinceramente ¿lo hiciste?. La verdad es que lo dudo, pues de haberlo hecho estoy seguro de que encontrarías alguna respuesta para aplicar a tu caso.
Prueba con esto:
Código SQL:
Ver originalDECLARE @Categoria TABLE (idcat INT, nomcat VARCHAR(20))
INSERT INTO @Categoria VALUES (1, 'lacteos')
INSERT INTO @Categoria VALUES (2, 'carnicos')
DECLARE @articulo TABLE (idart INT, idcat INT, nomart VARCHAR(20), precio INT)
INSERT INTO @articulo VALUES (1, 1, 'crema', 10)
INSERT INTO @articulo VALUES (2, 1, 'leche', 50)
INSERT INTO @articulo VALUES (3, 1, 'queso', 20)
INSERT INTO @articulo VALUES (4, 2, 'jamón', 100)
INSERT INTO @articulo VALUES (5, 2, 'salchicha', 70)
SELECT c.nomcat, a.nomart, a.precio FROM @articulo a INNER JOIN @categoria c ON a.idcat = c.idcat INNER JOIN
(SELECT idcat, MAX(precio) max_precio FROM @articulo GROUP BY idcat) T1 ON a.idcat = T1.idcat AND a.precio = T1.max_precio
Si observas la consulta que aparece como T1
ES LA MISMA QUE TE PUSE EN LA PRIMERA DE MIS RESPUESTAS ahí te mencionaba que utilizaras esta consulta para hacer un INNER JOIN con tus tablas original, ¿era muy difícil tratar de hacerlo?
compañero, no esperes que en los foros se te entreguen las respuesta sólo para copiar y ejecutar. en la mayoría de las ocasiones tendrás que hacer algunas adecuaciones, ojo con eso.
Espero que los códigos te sean de utilidad
Leo.