![]() |
FoxPro con ODBC -Query-
Estoy realizando una consuta de FoxPro a través de Microsoft Query, pero cuando agrego la sentencia IF o CASE de FoxPro me da un error que dice: COMMAND CONTAINS UNRECOGNIZED PHRASE KEYWORD. También, utilizo el la sentencia CASE de SQL y de igual forma me da error.
El código es el siguiente -UTILIZANDO COMANDO FOXPRO *DO CASE*: SELECT detalle_partidas.id_cuenta, partidas.concepto, detalle_partidas.concepto, partidas.fecha_partida, (detalle_partidas.cargo-detalle_partidas.abono) AS 'NETO', detalle_partidas.id_partida, partidas.numero_partida, partidas.tipo_partida, tipos_partidas.descripcion, cuentas.cargar_como, (substr(dtoc(partidas.fecha_partida),1,2)+'/'+substr(dtoc(partidas.fecha_partida),7,4)) AS 'MES-AÑO' DO CASE CASE cuentas.cargar_como =$1 THEN 'ACTIVO' CASE cuentas.cargar_como =$2 THEN 'PASIVO' ENDCASE FROM cuentas cuentas, detalle_partidas detalle_partidas, partidas partidas, tipos_partidas tipos_partidas WHERE partidas.id_partida = detalle_partidas.id_partida AND tipos_partidas.tipo_partida = partidas.tipo_partida AND cuentas.id_cuenta = detalle_partidas.id_cuenta AND ((partidas.fecha_partida Between {d '2011-01-01'} And {d '2011-12-31'})) ORDER BY partidas.fecha_partida El código es el siguiente -UTILIZANDO COMANDO SQL *CASE*: SELECT detalle_partidas.id_cuenta, partidas.concepto, detalle_partidas.concepto, partidas.fecha_partida, (detalle_partidas.cargo-detalle_partidas.abono) AS 'NETO', detalle_partidas.id_partida, partidas.numero_partida, partidas.tipo_partida, tipos_partidas.descripcion, cuentas.cargar_como, (substr(dtoc(partidas.fecha_partida),1,2)+'/'+substr(dtoc(partidas.fecha_partida),7,4)) AS 'MES-AÑO' 'CLASIFICACIÓN' = CASE WHEN cuentas.cargar_como =$1 THEN 'ACTIVO' WHEN cuentas.cargar_como =$2 THEN 'PASIVO' END CASE FROM cuentas cuentas, detalle_partidas detalle_partidas, partidas partidas, tipos_partidas tipos_partidas WHERE partidas.id_partida = detalle_partidas.id_partida AND tipos_partidas.tipo_partida = partidas.tipo_partida AND cuentas.id_cuenta = detalle_partidas.id_cuenta AND ((partidas.fecha_partida Between {d '2011-01-01'} And {d '2011-12-31'})) ORDER BY partidas.fecha_partida Muchas gracias por la ayuda. |
Foxpro.... q recuerdos....
prueba de esta manera
|
Muchas gracias Oscarac,
Me sirvio, pero si tengo más de una clasificación? Así por ejemplo: cuentas.cargar_como =$1 ----- 'ACTIVO' cuentas.cargar_como =$2 ----- 'PASIVO' cuentas.cargar_como =$3 ----- 'PATRIMONIO' cuentas.cargar_como =$4 ----- 'GASTOS' cuentas.cargar_como =$5 ----- 'INGRESOS' cuentas.cargar_como =$6 ----- 'CTAS. CIERRE' Se puede utilizar así: IFF (cuentas.cargar_como =$1, IFF (cuentas.cargar_como =$2, 'PASIVO',IFF (cuentas.cargar_como =$3, 'PATRIMONIO',....'ACTIVO')))))) |
asi es... puedes hacer una secuencia de iif anidados, como muy bien lo has puesto en tu ejemplo final, pero es IIF no IFF
|
Gracias nuevamente. Ya lo hice y me quedó así:
IIF(cuentas.cargar_como=$1, IIF(cuentas.cargar_como=$2, 'PASIVO', IIF(cuentas.cargar_como=$3, 'PATRIMONIO', IIF(cuentas.cargar_como=$4, 'GASTOS', IIF(cuentas.cargar_como=$5, 'INGRESOS', IIF(cuentas.cargar_como=$6, 'CTAS.CIERRE', 'ACTIVO')))))) AS 'CLASIFICACIÓN' pero me da un error que dice: MISSING COMMA (,) A que se deberá? De antemano, gracias. |
Yo creo que deberia ser asi
porque de la forma que estas haciendolo tu cuando es $1 no saldria nada |
| La franja horaria es GMT +2. Ahora son las 02:18:18. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi