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

Preguntas similare

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



Respuesta Responder a este mensaje
#2 Juan Alejandro
08/10/2003 - 00:13 | Informe spam
Muy BIen,
El problema era que le estaba colocando alias en el where...
Funcionó bien..
de nuevo gracias Eladio

"Eladio Rincon" escribió en el mensaje
news:
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
>
>
>


Respuesta Responder a este mensaje
#3 Eladio Rincón
08/10/2003 - 00:26 | Informe spam
De nada, un place ;-)

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:uNqux%
Muy BIen,
El problema era que le estaba colocando alias en el where...
Funcionó bien..
de nuevo gracias Eladio

"Eladio Rincon" escribió en el mensaje
news:
> 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
> >
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida