FoxPro/Visual FoxPro - IIF en QSL

 
Vista:

IIF en QSL

Publicado por Michael (20 intervenciones) el 26/01/2010 22:42:33
Buenas Tardes

En una tabla tengo un campo tipo_acto que almacena un valor (caracter) y al mostrar esto a través del uso del SELECT hago uso del IIF. Hasta aqui no tenia problemas pero ahora los valores que tiene este campo a crecido y me sale el siguiente mensaje de error
"sql expression i too complex".

Estuve haciendo pruebas y he llegado a determinar que es por la cantidad del IIF que uso, aparentemente solo permite usar de forma anidad esta función un máximo de 10 veces y los casos que tengo son 12. Alguna forma de solucionar este problema?

Gracias por su tiempo.

MPC-SOFT
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

RE:IIF en QSL

Publicado por Saul -Guatemalteco.. (728 intervenciones) el 27/01/2010 05:13:32
porque no haces esto..

Select TuProcedure(codigo) As SiCodigo From tu Tabla into Cursor _tuCursor

PUedes hacer tandos procemientos quieras..

Super.. ademas de atemano te digo que no creo que sean los IIF porque yo comparo 12, meses cantidades, y 12 mesesValores son 24 IIF y jala bien.

Saludos

procedure TuProcedure
parameter _codigo
private xC
IF _codigo = 1
xC = "cod-23"
ELSE
xC = "cod-25"
ENDIF
RETURN xC
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

RE:IIF en QSL

Publicado por Michael (20 intervenciones) el 27/01/2010 22:35:21
Tal vez no fui muy claro en el problema que se me presenta... mi select es el siguiente:

SELECT :
:
Iif(flg_causal='D','DESCRIPCION A' , ;
Iif(flg_causal='I','DESCRIPCION B' , ;
Iif(flg_causal='E','DESCRIPCION C' , ;
Iif(flg_causal='A','DESCRIPCION D', ;
Iif(flg_causal='F','DESCRIPCION E' , ;
Iif(flg_causal='L','DESCRIPCION F' , ;
Iif(flg_causal='M','DESCRIPCION G', ;
Iif(flg_causal='O','DESCRIPCION H', ;
Iif(flg_causal='P','DESCRIPCION I' , ;
Iif(flg_causal='R','DESCRIPCION J' , ;
Iif(flg_causal='S','DESCRIPCION K','')))))))))))+space(30) as dsc_causa ;
FROM mi_Tabla
WHERE :
:

Al usar la funcion IIF() de forma anidada me sale el error indicado, como puedo solucionar esto o como hace es estos casos.

Slds,
MPC-SOFT
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