SQL Server - Buscar el menor de todos en una misma fila

   
Vista:

Buscar el menor de todos en una misma fila

Publicado por Franco (7 intervenciones) el 06/01/2016 16:04:47
Buenos días, estoy necesitando hacer una busqueda de una tabla de una misma fila y comparar varios campos.

ej.:

A B C
1 3 5
2 1 0
0 9 1

el query debería devolver

A 1
C 0
A 0

gracias de antemano!

saludos
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
Imágen de perfil de Isaias

Buscar el menor de todos en una misma fila

Publicado por Isaias (3182 intervenciones) el 06/01/2016 19:41:18
¿En que version y edicion?
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

Buscar el menor de todos en una misma fila

Publicado por Franco (7 intervenciones) el 06/01/2016 19:43:54
por ahora MS SQL SERVER 2008.
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
Imágen de perfil de Isaias

Buscar el menor de todos en una misma fila

Publicado por Isaias (3182 intervenciones) el 06/01/2016 20:58:06
¿Y que EDICION?
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
Imágen de perfil de Isaias

Buscar el menor de todos en una misma fila

Publicado por Isaias (3182 intervenciones) el 06/01/2016 21:22:58
Te voy a solucionar tu pregunta, aunque no necesariamente sea lo que deseas poner en produccion.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CREATE TABLE #TEST (A INT, B INT, C INT)
INSERT INTO #TEST VALUES(1,3,5),(2,1,0), (0,9,1)
SELECT * FROM #TEST
 
CREATE FUNCTION fnGetMin (@a int, @b int, @c int)
returns char(3)
as
 begin
  if @a < @b and @a < @c
   begin
    if @a < @c
    return('A ' + CONVERT(CHAR(1), @a))
   end
  else if @b < @c and @b < @a
   begin
    return('B ' +  CONVERT(CHAR(1), @b))
   end
   return('C ' + CONVERT(CHAR(1), @c))
 end
 
 select dbo.fnGetMin(A,B,C) from #TEST

Resultado:

(No column name)
A 1
C 0
A 0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Buscar el menor de todos en una misma fila

Publicado por Rafael (88 intervenciones) el 07/01/2016 14:55:00
Hola:

A la respuesta de Isaias que es muy acertada tambien diria que se puede resolver de forma directa con una consulta sin necesidad de la funcion...

1
2
3
4
5
6
7
8
9
10
select A
     , B
     , C
     , CASE WHEN A<B AND A<C THEN 'A'
            WHEN B<A AND B<C THEN 'B'
            ELSE 'C' END AS CAMPO_MENOR
     , CASE WHEN A<B AND A<C THEN A
            WHEN B<A AND B<C THEN B
            ELSE C END AS VALOR_MENOR
from  #Testt

Imagen

Saludos


Pd. Si la informacion te sirve a mi me sirve un +1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Buscar el menor de todos en una misma fila

Publicado por jams (75 intervenciones) el 11/01/2016 21:33:18
Hola buenas tardes yo te recomendaría usar algo mas actual y no algo tan "basico", va mi recomendación con la única intención de que te sirva

DECLARE @myTable TABLE (columnID INT , column1 INT, column2 INT, column3 INT, column4 VARCHAR(50))

INSERT INTO @myTable SELECT 1, 100, 300, 200, 'Valor 01'
INSERT INTO @myTable SELECT 2, 600, 400, 500, 'Valor 02'
INSERT INTO @myTable SELECT 3, 700, 800, 900, 'Valor 03'
INSERT INTO @myTable SELECT 4, 1000, 1001, 123, 'Valor 04'

select * from @myTable

SELECT (
SELECT MAX(filaMaxima) FROM ( VALUES(column1),(column2),(column3) ) AS UNIQUECOLUMN(filaMaxima)
) AS FilaValorMaximo, column4 as Nombre
FROM @myTable



Puedes usar MIN en lugar de MAX y con eso tienes tu resultado


saludos y suerte
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
Imágen de perfil de Isaias

Buscar el menor de todos en una misma fila

Publicado por Isaias (3182 intervenciones) el 12/01/2016 20:06:53
Buena propuesta, solo que el requerimiento es, SABER LA COLUMNA que tiene el MIN()

Lo raro de todo, es que PROPONEMOS, pero ni siquiera nos pelan.....en fin..
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

Buscar el menor de todos en una misma fila

Publicado por jams (75 intervenciones) el 14/01/2016 16:15:20
Buenos días es, en la parte inferior de mi propuesta aclaro que se puede usar MIN o MAX de acuerdo a lo que se necesite, estoy completamente de acuerdo con el comentario de Isaias propones soluciones que ni siquiera sabes si fueron de utilidad , es por eso que no me gusta mucho aportar en el foro, pero bueno así las cosas



Saludos y suerte
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

Buscar el menor de todos en una misma fila

Publicado por Franco (7 intervenciones) el 14/01/2016 17:23:00
Gracias por sus respuestas.

Opté por la solución de Rafael que, me pareció simple... me falta probar la de Jams..


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