SQL - Problema con query

 
Vista:

Problema con query

Publicado por Ronald (4 intervenciones) el 06/10/2005 18:38:59
Tengo un problema, con un query, deseo sacar el minimo el maximo y el intermedio de una tabla

por ejemplo tengo

cod cantidad
1 100
1 800
1 700

quiero agruparlo asi

cod min interm max
1 100 700 800

mi query esta asi

select cod, max(cant) as maximo, min(cant as minimo
from tabla
group by cod
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Problema con query

Publicado por Liliana (426 intervenciones) el 06/10/2005 18:56:29
Hola Ronald,
Y cuál es el criterio para seleccionar el intermedio?
Qué pasa si para el mismo código tenés más o menos de tres datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con query

Publicado por Ronald (4 intervenciones) el 06/10/2005 21:10:09
Hola Liliana gracias por contestar, mira el criterio es que el intermedio sea menor que el maximo y mayor que el minimo, y solamente habran 3 datos siempre siempre.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Problema con query

Publicado por Liliana (426 intervenciones) el 07/10/2005 13:17:20
Hola,
no se me ocurre otra manera, espero que tengas índice sobre cod para mejorar el rendimiento:

SELECT t2.cod, min, max, int = t2.a
FROM #t t2
INNER JOIN (SELECT cod, min = MIN(a), max = MAX(a)
FROM #t
GROUP BY cod) t1
ON t1.cod = t2.cod
AND t2.a <> min AND t2.a <> max
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con query

Publicado por Ronald (4 intervenciones) el 07/10/2005 17:17:33
saludos, fijate que corri el query pero no me funciona
lindet =cod

SELECT t2.lindet, MIN(total), MAX(total), int = t2.total
FROM cvcotizaciones2 t2
INNER JOIN (SELECT lindet, min = MIN(total), max = MAX(total)
FROM cvcotizaciones2
GROUP BY lindet) t1
ON t1.lindet = t2.lindet
AND t2.total <> min AND t2.total <> max

medice que min no existe
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Problema con query

Publicado por Liliana (426 intervenciones) el 07/10/2005 18:32:44
Ronald,
Corrijo sobre tu consulta:

SELECT t2.lindet, Min, Max, int = t2.total -- en esta línea
FROM cvcotizaciones2 t2
INNER JOIN (SELECT lindet, min = MIN(total), max = MAX(total)
FROM cvcotizaciones2
GROUP BY lindet) t1
ON t1.lindet = t2.lindet
AND t2.total <> min AND t2.total <> max
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar