Clausura Select

07/10/2003 - 14:55 por Juan Alejandro | Informe spam
Buenos días
Resulta que tengo la siguiente instrucción select

SELECT F0911I.TERCIMP,
CASE F0911I.CodTipoCuenta
WHEN '1' then F0911I.GLOBJ
WHEN '2' then F0911I.GLOBJ + F0911I.GLSUB
WHEN '3' then F0911I.GLOBJ + F0911I.GLSUB
END AS Cuenta
FROM dbo.F0911Impuestos F0911I

Debo realizar un where. El Where debe tener en cuenta el campo "Cuenta" que
es el alias que tiene el resultado del select.
La pregunta es: Como puedo hacer el Where sabiendo que este campo es formado
por medio de un case? intenté haciendo lo así Where Cuenta = '1522' y me
sale un error. Si podré colocar un case en un Where?

Gracias por su colaboración.

Juan
 

Leer las respuestas

#1 Eladio Rincon
07/10/2003 - 14:59 | Informe spam
HOla,

la condición CASE también la puedes poner en el WHERE:

USE Northwind
go


SELECT
CASE
WHEN EmployeeID = 1 THEN EmployeeID + 1
WHEN EmployeeID = 2 THEN EmployeeID + 2
WHEN EmployeeID = 3 THEN EmployeeID + 3
END AS Empleado,
Employees.*
FROM Employees
WHERE

CASE
WHEN EmployeeID = 1 THEN EmployeeID + 1
WHEN EmployeeID = 2 THEN EmployeeID + 2
WHEN EmployeeID = 3 THEN EmployeeID + 3
END = 4


Eladio Rincón.
SQL Server MVP

http://eladio.europe.webmatrixhosting.net
"Comparte lo que sabes, aprende lo que no sepas", FGG.

"Juan Alejandro" escribió en el mensaje
news:
Buenos días
Resulta que tengo la siguiente instrucción select

SELECT F0911I.TERCIMP,
CASE F0911I.CodTipoCuenta
WHEN '1' then F0911I.GLOBJ
WHEN '2' then F0911I.GLOBJ + F0911I.GLSUB
WHEN '3' then F0911I.GLOBJ + F0911I.GLSUB
END AS Cuenta
FROM dbo.F0911Impuestos F0911I

Debo realizar un where. El Where debe tener en cuenta el campo "Cuenta"


que
es el alias que tiene el resultado del select.
La pregunta es: Como puedo hacer el Where sabiendo que este campo es


formado
por medio de un case? intenté haciendo lo así Where Cuenta = '1522' y me
sale un error. Si podré colocar un case en un Where?

Gracias por su colaboración.

Juan



Preguntas similares