FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour O.T. ADS - Consulta SQL (SOLUCIONADO)
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
O.T. ADS - Consulta SQL (SOLUCIONADO)
Posted: Fri Jun 12, 2015 02:27 PM
Gente:
Segun el pdf de ayuda que tengo, para acutalizar un campo, con datos de otro campo se puede hacer de la siguiente manera:

    UPDATE stock SET stock.quantity = t.quantity
    FROM stock INNER JOIN stock t ON stock.id = t.id
    WHERE t.state = 1[/list:u]
    Para mi caso lo hago de la siguiente manera (desde el ARC)

      UPDATE BDSGC03 SET BDSGC03.FCABFA14= SUM(D.FDETFA06*(D.FDETFA08-D.FDETFA07))
      FROM BDSGC03 INNER JOIN BDSGC04 AS D ON BDSGC03.FDOCINT1=D.FDOCINT1
      WHERE BDSGC03.FCABFA14=0[/list:u]

      Y me devuelve el siguiente error:
      ERROR IN SCRIPT: poQuery: Error 7200: AQE Error: State = 42000; NativeError = 2117; [iAnywhere Solutions][Advantage SQL Engine]Unexpected token: SELECT -- Expecting
      semicolon. -- Location of error in the SQL statement is: 754 (line: 16 column: 1)

      Cual sería la forma correcta?
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 302
Joined: Fri Apr 23, 2010 04:30 AM
Re: O.T. ADS - Consulta SQL
Posted: Fri Jun 12, 2015 03:21 PM
Revisa el codigo, el AS te esta causando el error


UPDATE BDSGC03 SET BDSGC03.FCABFA14= SUM(D.FDETFA06*(D.FDETFA08-D.FDETFA07))
FROM BDSGC03 INNER JOIN BDSGC04 AS D ON BDSGC03.FDOCINT1=D.FDOCINT1
WHERE BDSGC03.FCABFA14=0

Forma correcta:

Code (fw): Select all Collapse
UPDATE BDSGC03 SET BDSGC03.FCABFA14= SUM(D.FDETFA06*(D.FDETFA08-D.FDETFA07))
FROM BDSGC03 INNER JOIN BDSGC04  D ON BDSGC03.FDOCINT1=D.FDOCINT1 
WHERE BDSGC03.FCABFA14=0
Nicanor Martinez M.
Auditoria y Sistemas Ltda.
MicroExpress Ltda.
FW + FWH + XHARBOUR + HARBOUR + PELLES C + XDEVSTUDIO + XEDIT + BCC + VC_X86 + VCC_X64 + MINGW + R&R Reports + FastReport + Tdolphin + ADO + MYSQL + MARIADB + ORACLE
nnicanor@yahoo.com
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: O.T. ADS - Consulta SQL
Posted: Fri Jun 12, 2015 03:28 PM
Nicanor, gracias por responder
Elimine al Alias
    UPDATE BDSGC03 SET BDSGC03.FCABFA14= SUM(BDSGC04.FDETFA06*(BDSGC04.FDETFA08-BDSGC04.FDETFA07))
    FROM BDSGC03 INNER JOIN BDSGC04 ON BDSGC03.FDOCINT1=BDSGC04.FDOCINT1
    WHERE BDSGC03.FCABFA14=0[/list:u]
    No le gusta, repite el error:
      ERROR IN SCRIPT: poQuery: Error 7200: AQE Error: State = S0000; NativeError = 2149; [iAnywhere Solutions][Advantage SQL Engine]Aggregate function not allowed in this
      context: Not a SELECT statement.[/list:u]
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: O.T. ADS - Consulta SQL
Posted: Fri Jun 12, 2015 03:30 PM
Nicanor;
Lo que no le gusta es el SUM()!
    UPDATE BDSGC03 SET BDSGC03.FCABFA14= BDSGC04.FDETFA06*(BDSGC04.FDETFA08-BDSGC04.FDETFA07)
    FROM BDSGC03 INNER JOIN BDSGC04 ON BDSGC03.FDOCINT1=BDSGC04.FDOCINT1
    WHERE BDSGC03.FCABFA14=0[/list:u]
    Asi funciona.
    Debería hacer el calculo en una variable?, como? (mientras sigo leyendo)
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 302
Joined: Fri Apr 23, 2010 04:30 AM
Re: O.T. ADS - Consulta SQL
Posted: Fri Jun 12, 2015 04:44 PM

El SUM solamente se puede usar con GROUP BY

Slds,

Nicanor Martinez M.
Auditoria y Sistemas Ltda.
MicroExpress Ltda.
FW + FWH + XHARBOUR + HARBOUR + PELLES C + XDEVSTUDIO + XEDIT + BCC + VC_X86 + VCC_X64 + MINGW + R&R Reports + FastReport + Tdolphin + ADO + MYSQL + MARIADB + ORACLE
nnicanor@yahoo.com
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: O.T. ADS - Consulta SQL
Posted: Fri Jun 12, 2015 07:56 PM
MarioG wrote:Nicanor;
Lo que no le gusta es el SUM()!
    UPDATE BDSGC03 SET BDSGC03.FCABFA14= BDSGC04.FDETFA06*(BDSGC04.FDETFA08-BDSGC04.FDETFA07)
    FROM BDSGC03 INNER JOIN BDSGC04 ON BDSGC03.FDOCINT1=BDSGC04.FDOCINT1
    WHERE BDSGC03.FCABFA14=0[/list:u]
    Asi funciona.
    Debería hacer el calculo en una variable?, como? (mientras sigo leyendo)

Prueba hacer la operacion con un administrador como navicar, sqlyoj o cualquier otro, ya que he usado el SUM parecido como lo haces y no he tenido problemas, saludos... :-)
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: O.T. ADS - Consulta SQL
Posted: Fri Jun 12, 2015 08:30 PM
MarioG wrote:Nicanor;
Lo que no le gusta es el SUM()!
    UPDATE BDSGC03 SET BDSGC03.FCABFA14= BDSGC04.FDETFA06*(BDSGC04.FDETFA08-BDSGC04.FDETFA07)
    FROM BDSGC03 INNER JOIN BDSGC04 ON BDSGC03.FDOCINT1=BDSGC04.FDOCINT1
    WHERE BDSGC03.FCABFA14=0[/list:u]
    Asi funciona.
    Debería hacer el calculo en una variable?, como? (mientras sigo leyendo)

Forma correcta y ya probado....saludos... :-)

UPDATE `facturas_copy` SET sumatoria=(SELECT SUM(mtopagado*2))
where mtopagado>0;

http://nideaderedes.urlansoft.com/2008/ ... tra-tabla/
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: O.T. ADS - Consulta SQL
Posted: Fri Jun 12, 2015 08:35 PM

Bien respondo antes de probarlo.
AsÍ debe ser porque en el error hacia referencia al SELECT!

gracias!!

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: O.T. ADS - Consulta SQL
Posted: Fri Jun 12, 2015 09:12 PM
MarioG wrote:Bien respondo antes de probarlo.
AsÍ debe ser porque en el error hacia referencia al SELECT!

gracias!!

Por lo visto si quieres usar funciones..se debe usar el SELECT como si fuese una sub-consulta, sino, entonces puedes aplicar la sumatoria como lo hicistes sin el SUM(), mas que todo uso el SUM para hacer calculo de varias columnas y crear un campo virtual, espero te sirva, ambas formas ya las probe y funcionaron, avisa como te va cuando lo pruebes, saludos... :-)
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: O.T. ADS - Consulta SQL
Posted: Mon Jun 15, 2015 01:54 PM

Nicanor, Jose Luis; muchas gracias!
Realmente si no hubiese contado con vuestro interes por ayudar, no hubiese podido llegar a la solución.
bueno, no es ninguna novedad en este foro donde todos colegas ofrecen su tiempo para ayudar al resto.

José Luis, espectacular el enlace, presenta exactamente lo que planteo aquí, y lo tomo como lugar de consulta, ya que seguramente obtendré muy buena info.
Y seguramente a muchos les será muy útil

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: O.T. ADS - Consulta SQL
Posted: Mon Jun 15, 2015 04:17 PM
MarioG wrote:Nicanor, Jose Luis; muchas gracias!
Realmente si no hubiese contado con vuestro interes por ayudar, no hubiese podido llegar a la solución.
bueno, no es ninguna novedad en este foro donde todos colegas ofrecen su tiempo para ayudar al resto.

José Luis, espectacular el enlace, presenta exactamente lo que planteo aquí, y lo tomo como lugar de consulta, ya que seguramente obtendré muy buena info.
Y seguramente a muchos les será muy útil


A la orden siempre y cuando se pueda, una ayuda a alguien del foro, es un aumento al diccionario de informacion para otros...saludos... :-)
Dios no está muerto...



Gracias a mi Dios ante todo!

Continue the discussion