SQL Server - Consulta utilizando 'Case'

   
Vista:

Consulta utilizando 'Case'

Publicado por martin_vb (4 intervenciones) el 08/08/2011 03:08:39
Buenas!!!!

Realicé una consulta utilizando la instrucción 'Case' de esta manera:

1
2
3
4
5
6
SELECT     'Salarios' =
    CASE
        WHEN COUNT(Numero_Empleado) > 2 THEN MIN(Sueldo)
    ELSE     MAX(Sueldo)
    END
FROM         Empleado



Quisiera saber como hacer para que la etiqueta me cambie según el resultado obtenido: si es mayor a dos empleados, que la etiqueta se ponga en "Salario Mínimo" y si es menor a dos empleados se ponga en "Salario máximo".


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

Consulta utilizando 'Case'

Publicado por Francisco I (9 intervenciones) el 08/08/2011 13:30:41
Buenas...

Lo que y haría en tu caso, sería lo siguiente:

DECLARE @Result varchar(10) = 'Máximo'
IF (SELECT COUNT(Numero_Empleado) FROM Empleado) > 2
SET @Result = 'Mínimo'
SELECT 'Salarios = ' + @Result


Espero te sirva...

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

Consulta utilizando 'Case'

Publicado por martin_vb (4 intervenciones) el 10/08/2011 00:04:49
DECLARE @Result varchar(10) = 'Máximo'
IF (SELECT COUNT(Numero_Empleado) FROM Empleado) > 2
SET @Result = 'Mínimo'
SELECT 'Salarios = ' + @Result


Realicé esta consulta y me tira un cartel de error: "No se puede asignar una varibale predeterminado a una varibale local"

Hago la misma pregunta ¿sql server 200 acepta la condición if?
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

Consulta utilizando 'Case'

Publicado por Isaias (3182 intervenciones) el 08/08/2011 17:42:07
Si forzosamente deseas utilizar CASE

SELECT 'Salarios' =
CASE WHEN COUNT(Numero_Empleado) > 2 THEN 'Minimos $'+CONVERT(VARCHAR(50), CAST( MIN(Sueldo) AS MONEY ),1)
ELSE 'Maximos $'+CONVERT(VARCHAR(50), CAST( MAX(Sueldo) AS MONEY ),1) END
FROM Empleado
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

Consulta utilizando 'Case'

Publicado por martin_vb (4 intervenciones) el 10/08/2011 00:03:10
Muchas gracias!!!!

Una pregunta en relación a lo de "forzosamente" ¿qué hubieras sugerido como alternativa para realizar la consulta? Lo pregunto porque el if no me lo toma el sql server 2000.

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

Consulta utilizando 'Case'

Publicado por Isaias (3182 intervenciones) el 10/08/2011 21:51:28
Bueno, al decir FORZOSAMENTE, sera porque seguramente habra compañeros que te sugieran alguna otra alternativa.
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

Consulta utilizando 'Case'

Publicado por martin_vb (4 intervenciones) el 11/08/2011 22:57:00
Ahhh, listo, listo. Había como entendido que no era la mejor alternativa hacerlo con un Case.

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