Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-07-2011
HectorMM HectorMM is offline
Registrado
NULL
 
Registrado: nov 2010
Posts: 6
Poder: 0
HectorMM Va por buen camino
Thumbs down 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.
Responder Con Cita
  #2  
Antiguo 08-07-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Foxpro.... q recuerdos....

prueba de esta manera

Código SQL [-]
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',
iif (cuentas.cargar_como =$1, 'ACTIVO', 'PASIVO') 
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
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 08-07-2011
HectorMM HectorMM is offline
Registrado
NULL
 
Registrado: nov 2010
Posts: 6
Poder: 0
HectorMM Va por buen camino
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'))))))
Responder Con Cita
  #4  
Antiguo 08-07-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
asi es... puedes hacer una secuencia de iif anidados, como muy bien lo has puesto en tu ejemplo final, pero es IIF no IFF
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 08-07-2011
HectorMM HectorMM is offline
Registrado
NULL
 
Registrado: nov 2010
Posts: 6
Poder: 0
HectorMM Va por buen camino
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.
Responder Con Cita
  #6  
Antiguo 08-07-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Yo creo que deberia ser asi

Código SQL [-]
 
IIF(cuentas.cargar_como=$1, 'ACTIVO', 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', 'desconocido')))))) 
AS 'CLASIFICACIÓN'

porque de la forma que estas haciendolo tu cuando es $1 no saldria nada
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
reordenar indices foxpro cmm07 Varios 0 02-12-2007 23:30:12
Eliminar en FoxPro Danielle Conexión con bases de datos 2 27-06-2006 23:50:44
FoxPro altp Tablas planas 2 30-01-2006 10:58:49
Error de SQLConnectionAttr con FoxPro Tecnic2 Conexión con bases de datos 3 04-04-2005 19:08:14
Foxpro Mariana Conexión con bases de datos 3 18-11-2004 13:38:39


La franja horaria es GMT +2. Ahora son las 20:44:09.


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
Copyright 1996-2007 Club Delphi