Juan Guillermo Fernández V.
2004-05-07 14:11:48 UTC
Hola gente de mundo....
Necesito, una vez más, de la infinita sabiduría de el ciberdespacio, que
siempre han sido tan generosos en prodigarme.
Ocurre que me encuentro migrando unas bases de datos desde Visual FoxPro a
MySQL, en un proceso que debe repetirse automágicamente todas las noches asi
que no es "evento de una sola vez", como pa' que me sugieran soluciones
manuales alternativas....
La cosa es que estoy haciendo, vía ODB, el siguiente QUERY:
'SELECT cod_art, fecha AS mesyso, cantidad, tipodoc,
IIf(tipodoc=10,(-1 * cantidad),cantidad) AS cantidad2,
Year(fecha) AS ano, Month(fecha) AS mes
FROM docu_db LEFT JOIN docde_db ON numreg = numrecor
GROUP BY cod_art, Year(fecha), Month(fecha)
HAVING (tipodoc=8)
OR (tipodoc=10);
Sin embargo, el sistema me responde -en su infinita sabiduría- que:
SQL error: [Microsoft][ODBC Visual FoxPro Driver]
SQL: Column 'COD_ART' is not found., SQL state S0022 in SQLExecDirect
Ahora, si remuevo las clausulas Year(fecha), Month(fecha), o las reemplazo
por una columna propiamente tal (como fecha a secas) funciona bonito. Pero
si las "ALIASo", o sea, las llamo (en el Group By) como Year(fecha) AS ano,
Month(fecha) AS mes, me retorna un hermoso:
SQL error: [Microsoft][ODBC Visual FoxPro Driver]
Command contains unrecognized phrase/keyword., SQL state 37000 in
SQLExecDirect
La cosa es que necesito agrupar los resultados de esa forma: cod_art, Año y
Mes, en ese orden; y Año y Mes deben ser extraídos de la columna fecha.
¿Alguna idea de cómo meter estas funciones en el group by ofrecido por SQL
ODBC?
Otros problemas adicionales que tengo son:
Debo convertir una fecha '2004-05-07' en '2004-05-01'. Lo habría hecho
Year(fecha)+Month(fecha)+'01'; pero no consigo encontrar el concatenador de
Strings pa' este SQL. Sólo me topé con el engorroso concat(str1,str2), que
debería anidar horriblemente pa' conseguir el mismo efecto, y aún así no me
funciona :S
¿Alguna alternativa?
Y por último, ¿cuál sería, para los entendidos, el cófigo para:
-Crear tablas temporales
-Hacer subqueries
Sólo eso. Muchas gracias a quien pueda ofreecerme una tablita.... pa' este
naufrago... con el jefe al hombro :S
¡Gracias!
Necesito, una vez más, de la infinita sabiduría de el ciberdespacio, que
siempre han sido tan generosos en prodigarme.
Ocurre que me encuentro migrando unas bases de datos desde Visual FoxPro a
MySQL, en un proceso que debe repetirse automágicamente todas las noches asi
que no es "evento de una sola vez", como pa' que me sugieran soluciones
manuales alternativas....
La cosa es que estoy haciendo, vía ODB, el siguiente QUERY:
'SELECT cod_art, fecha AS mesyso, cantidad, tipodoc,
IIf(tipodoc=10,(-1 * cantidad),cantidad) AS cantidad2,
Year(fecha) AS ano, Month(fecha) AS mes
FROM docu_db LEFT JOIN docde_db ON numreg = numrecor
GROUP BY cod_art, Year(fecha), Month(fecha)
HAVING (tipodoc=8)
OR (tipodoc=10);
Sin embargo, el sistema me responde -en su infinita sabiduría- que:
SQL error: [Microsoft][ODBC Visual FoxPro Driver]
SQL: Column 'COD_ART' is not found., SQL state S0022 in SQLExecDirect
Ahora, si remuevo las clausulas Year(fecha), Month(fecha), o las reemplazo
por una columna propiamente tal (como fecha a secas) funciona bonito. Pero
si las "ALIASo", o sea, las llamo (en el Group By) como Year(fecha) AS ano,
Month(fecha) AS mes, me retorna un hermoso:
SQL error: [Microsoft][ODBC Visual FoxPro Driver]
Command contains unrecognized phrase/keyword., SQL state 37000 in
SQLExecDirect
La cosa es que necesito agrupar los resultados de esa forma: cod_art, Año y
Mes, en ese orden; y Año y Mes deben ser extraídos de la columna fecha.
¿Alguna idea de cómo meter estas funciones en el group by ofrecido por SQL
ODBC?
Otros problemas adicionales que tengo son:
Debo convertir una fecha '2004-05-07' en '2004-05-01'. Lo habría hecho
Year(fecha)+Month(fecha)+'01'; pero no consigo encontrar el concatenador de
Strings pa' este SQL. Sólo me topé con el engorroso concat(str1,str2), que
debería anidar horriblemente pa' conseguir el mismo efecto, y aún así no me
funciona :S
¿Alguna alternativa?
Y por último, ¿cuál sería, para los entendidos, el cófigo para:
-Crear tablas temporales
-Hacer subqueries
Sólo eso. Muchas gracias a quien pueda ofreecerme una tablita.... pa' este
naufrago... con el jefe al hombro :S
¡Gracias!