SELECT Condicional

14/11/2003 - 17:54 por Antonio Ortiz | Informe spam
Alguien que me puede aclarar por favor, se trate de un Select que obtenga en
una columna el valor mas bajo de 3 campos

Ejemplo:

Producto,CostoProv1(A),CostoProv2, CostoProv3
X,50,52,49
Y,20,21,22
Z,33,32,33

El resultado debera ser:
X,49,C (o 3)
Y,18,A (o 1)
Z,32,B (o 2)

Gracias de antemano

Antonio Ortiz Ramirez
asesor en sistemas
ant@aortiz.net.nospam
www.aortiz.net
www.progvisual.com
 

Leer las respuestas

#1 Javier Loria
14/11/2003 - 21:56 | Informe spam
Hola Antonio:
Sera posible que en la segunda fila te equivocaras y usaras 18 en vez de
20?.
Si es asi tal vez la siguiente consulta te sirve:
SELECT X.Producto,
CASE WHEN ((CostoProv1=<CostoProv2) AND
(CostoProv1=<CostoProv3)) THEN
CostoProv1
WHEN (CostoProv2=<CostoProv3) THEN CostoProv2
ELSE CostoProv3
END AS Costo,
CASE WHEN ((CostoProv1=<CostoProv2) AND
(CostoProv1=<CostoProv3)) THEN
'A'
WHEN (CostoProv2=<CostoProv3) THEN 'B'
ELSE 'C'
END AS SelCosto
FROM X
Este tipo de diseno de tablas como no esta normalizado, produce muchos
dolores de cabeza, incluyendo la necesidad de SQL "creativo".
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Antonio Ortiz escribio:
Alguien que me puede aclarar por favor, se trate de un Select que
obtenga en una columna el valor mas bajo de 3 campos

Ejemplo:

Producto,CostoProv1(A),CostoProv2, CostoProv3
X,50,52,49
Y,20,21,22
Z,33,32,33

El resultado debera ser:
X,49,C (o 3)
Y,18,A (o 1)
Z,32,B (o 2)

Gracias de antemano

Antonio Ortiz Ramirez
asesor en sistemas

www.aortiz.net
www.progvisual.com

Preguntas similares