![]() |
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 |
Tal vez sería mejor utilizar un CASE WHEN en lugar de un IIF
|
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?
|
:confused::confused::confused:
¿de donde tomas B_T ? ¿que significa b_t? |
¿Con qué motor estas trabajando?
|
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' ......) |
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 06:19:40. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi