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.
-----Mensaje original-----
De: [email protected] [mailto:[email protected]]En nombre de Jaime Villa Torres
Enviado el: Jueves, 01 de Octubre de 2009 04:13 p.m.
Para: forum.help400
Asunto: Re: Sql embebido

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.
-----Mensaje original-----
De: [email protected] [mailto:[email protected]]En nombre de Jaime Villa Torres
Enviado el: Jueves, 01 de Octubre de 2009 11:55 a.m.
Para: forum.help400
Asunto: Sql embebido

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


____________________________________________________
© 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

Responder a