Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Como Utilizar Iif enun Select ? (https://www.clubdelphi.com/foros/showthread.php?t=35615)

Alejandro73 15-09-2006 15:32:21

Como Utilizar Iif enun Select ?
 
Hola Amigos del Club, quisiere que alguien me pueda ayudar con lo siguiente

Codigo de la Consulta:

dm_b.SQL_K850.SQL.Add('Select *');
dm_b.SQL_K850.SQL.Add('From K850 inner join K915 on b_n=b_r and b_s=0');
dm_b.SQL_K850.SQL.Add('iif(b_t=2, then ''AB'', else iif(b_t=50, then ''CD'')) as Documento');
dm_b.SQL_K850.SQL.Add('where b_n=:lv_b_n and b_r=:lv_b_r order by b_n');
dm_b.SQL_K850.ParamByName(lv_b_n').AsInteger:=StrToInt(Edit_F.Text);
dm_b.SQL_K850.ParamByName('lv_b_r').AsInteger:=StrToInt(Edit_R.Text);

Lo que la consulta realiza es tomar de una tabla X todos los documentos que estan en la tabla Y, pero como el b_t de la tabla es numerico quiero reemplazarlo en el DBgrid por AB o CD segun su valor numerico.

El compilador no arroja errores en la sentencia antes descrita pero cuando trato de incorporar esta columna "Documento" no existen valores, osea no muestra AB si es 2 o CD si es 50.

Alguien habra trabajado antes con el IIF?

Gracias

Alejandro
Valparaiso - CHILE

ContraVeneno 15-09-2006 15:55:15

Tal vez sería mejor utilizar un CASE WHEN en lugar de un IIF

Código SQL [-]
case when b_t=2 then 'AB' when b_t=50 then  'CD' end NombreCampo

Alejandro73 15-09-2006 16:56:33

Ya Probe pero....
 
Ya lo hice pero el problema radica en que no figura como un campo + del Query y por ende no lo puedo mostrar en el DBGrid?

ContraVeneno 15-09-2006 18:18:13

:confused::confused::confused:

¿de donde tomas B_T ?
¿que significa b_t?

delphi.com.ar 18-09-2006 23:32:28

¿Con qué motor estas trabajando?

Alejandro73 20-09-2006 21:01:56

Motor?
 
SQL SERVER 2000

se me habia olvidado indicarlo, y B_T es un campo de la Tabla es por eso que la consulta es iif(b_t=2, then 'AB' ......)

ContraVeneno 21-09-2006 00:55:53

bueno, ¿y si defines los campos que quieres en el dbgrid en lugar de tomarlos automáticos? de esa forma puedes ocultar ese campo y todavía tenerlo accesible.


La franja horaria es GMT +2. Ahora son las 09:27:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi