Así no vas a poder hacerlo. Tienes que montar toda la sentencia en un
string : "select sum(" + fromfld + ") from " + %trim(fromlib) + "/" +
%trim(fromfile). Luego declarar un cursor con esa sentencia y luego
hacer un fetch en la variable Total.
Si necesitas más explicación sobre el uso de cursores, coméntalo y
buscaré un ejemplo.
Saludos.
Fernando Pérez
Cerámica Saloni. Dpto. Organización
Jaime Villa Torres escribió:
Gracias por el tiempo
El problema se origina en lo
siguiente, el programa recibe CUATRO parametros
FROMFILE
FROMLIB
FROMFLD
TOTAL
El programa debe calcular la
sumatoria de la columna FROMFLD del archivo FROMFILE y biblioteca
FROMLIB
La siguiente instruccion sql se ha
probado en la anterior version, como en free, con sentencia sql o
generando la sentencia sql en una variable, y el codigo es el siguiente
c/exec sql
c+ select SUM(FROMFLD) into :TOTAL
c+ from FROMLIB/FROMFILE
c/end-exec
Lo que requiere es que la anterior
sentencia, acepte las variables antes mencionadas
Gracias.
-----
Original Message -----
Sent:
Thursday, October 01, 2009 5:55 PM
Subject:
RE: Sql embebido
Hola Jaime:
Te pego un ejemplo de algo que tengo y funciona
sin problema:
Ejemplo 1:
/FREE
xxSqlSel = 'SELECT a.nEjer_peri,LEFT(a.cArticulo,'+
%CHAR(pnLargoCod1) + '),CASE WHEN ' + %CHAR(piMonedaNac) + '=
' THEN SUM(a.dValor_tot) ELSE SUM(a.mValor_tot) END,' +
' CASE WHEN ' + %CHAR(piMonedaNac) + '=0 THEN' +
' IFNULL(SUM(d.dValor_vta),0) ELSE' +
' IFNULL(SUM(d.mValor_vta),0) END' +
' FROM (((costo_articulo a INNER JOIN articulo b' +
' ON a.cArticulo = b.cArticulo) INNER JOIN cat_articulo c' +
' ON b.cCat_art = c.cCat_art) LEFT OUTER JOIN vta_articulo d'
' ON a.nEjer_peri = d.nEjer_peri AND a.cArticulo = d.cArticul
' WHERE a.nEjer_peri BETWEEN ' + %CHAR(nnEjerPeriIni) +
' AND ' + %CHAR((pnEjercicio * 100) + pnPeriodo) +
' AND c.cClase_art = ''' + pcClaseArt + '''' ;
/END-FREE
Ejemplo 2:
EVAL xxCampo = 'LEFT(a.cCtaCo,' +
pnDigito + ')'
EVAL xSqlSel1 ='SELECT ' + xxCampo + ' AS
'cCtaCo,a.cUbica_balance,b.xDesc,' +
'c.xDesc,c.nSecuencia,c.cTipo_ctaco,
'd.xDesc,SUM(a.mSaldo)' +
' FROM balance a, plan_contable b,'
'ubica_balance c, tipo_cta_contable
' WHERE ' + xxCampo + '=b.cCtaCo' +
' AND a.cUbica_balance=c.cUbica_bala
' AND c.cTipo_ctaco=d.cTipo_ctaco' +
' AND a.nEjercicio=' + pnEjercicio +
' AND a.nPeriodo=' + pnPeriodo +
' GROUP BY ' + xxCampo + ',' +
'a.cUbica_balance,b.xDesc,c.xDesc,'
'c.nSecuencia,c.cTipo_ctaco,d.xDesc'
' ORDER BY c.nSecuencia,cCtaCo'
Seria importante que envies el codigo donde
armas la sentencia
Saludos.
Ya se realizo, en cadena o
sentencia por sentencia, teniendo en cuenta el PREPARE, pero nada....
-----
Original Message -----
Sent:
Thursday, October 01, 2009 3:34 PM
Subject:
RE: Sql embebido
Hola Jaime:
Haz probado armar la sentencia como cadena,
armandola con las variables que mencionas y luego ejecutarla con la
sentencia PREPARE. Puedes colocar el codigo de lo que intentas hacer.
Saludos.
Tengo la siguiente necesidad
y le doy por todos los dados pero no logro solucionarlo.
El problema es el siguiente.
Al programa debe ingresar el
nombre de una archivo, el nombre del campo del mismo, una variable
numerica.
El programa, con el nombre y
el nombre del campo debe realizar un sql, y calcular el sum(nombre del
campo) y ese valor enviarlo en la variable numérica.
He realizado la sentencia y
tengo dos problemas, uno con la variable numerica que dice que no esta
definida, y el segundo no me acepta la variable nombre del archivo en
el FROM.
Cualquier idea, como siempre
bien venida.
Gracias por su tiempo
--
Este mensaje ha sido analizado por MailScanner
en busca de virus y otros contenidos peligrosos,
y se considera que está limpio.
MailScanner agradece a transtec Computers por su apoyo.
__________ Información de ESET NOD32 Antivirus, versión de la base de
firmas de virus 4474 (20091001) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com
--
Este mensaje ha sido analizado por MailScanner
en busca de virus y otros contenidos peligrosos,
y se considera que está limpio.
MailScanner agradece a transtec Computers por su apoyo.
__________ Información de ESET Smart Security, versión de la base de
firmas de virus %s __________
ESET Smart Security ha comprobado este mensaje.
http://www.eset.com
____________________________________________________
© Publicaciones Help400, S.L. - Todos los
derechos reservados http://www.help400.es
----------------------------------------------------
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400
__________ Información de ESET Smart Security, versión de la base de
firmas de virus %s __________
ESET Smart Security ha comprobado este mensaje.
http://www.eset.com
--
Este mensaje ha sido analizado por MailScanner
en busca de virus y otros contenidos peligrosos,
y se considera que está limpio.
MailScanner agradece a transtec Computers por su apoyo.
--
Este mensaje ha sido analizado por MailScanner
en busca de virus y otros contenidos peligrosos,
y se considera que está limpio.
MailScanner agradece a transtec Computers por su apoyo.
__________ Información de ESET Smart Security, versión de la base de
firmas de virus %s __________
ESET Smart Security ha comprobado este mensaje.
http://www.eset.com
____________________________________________________
© Publicaciones Help400, S.L. - Todos los
derechos reservados http://www.help400.es
----------------------------------------------------
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400
__________ Información de ESET Smart Security, versión de la base de
firmas de virus %s __________
ESET Smart Security ha comprobado este mensaje.
http://www.eset.com
____________________________________________________
© Publicaciones Help400, S.L. - Todos los
derechos reservados http://www.help400.es
----------------------------------------------------
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400
|