Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-06-2016
Tecnofacil Tecnofacil is offline
Miembro
 
Registrado: jun 2015
Posts: 50
Poder: 9
Tecnofacil Va por buen camino
Unhappy Variables MySQL en Zeos

Hola amigos. Tengo la siguiente consulta en MySQL
Código SQL [-]
Set @Sumatoria = 0;
SELECT
detalle_liquidaciones_cta.pu,
detalle_liquidaciones_cta.cantidad,
detalle_liquidaciones_cta.debe,
detalle_liquidaciones_cta.haber,
(@Sumatoria:= @Sumatoria + detalle_liquidaciones_cta.debe + detalle_liquidaciones_cta.haber) as Incremental
FROM
detalle_liquidaciones_cta
where idliquidacion=200

Funciona perfecto en Navicat y Mysql Workbench pero al pasar la consulta a Zeos me tira error.

Cita:
SQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server for the right syntax to use near
'SELECT
detalle_liquidaciones_cta.pu,
detalle_liquidaciones_cta.cantidad,
deta' at line 2
ParamCheck esta en False.
Responder Con Cita
  #2  
Antiguo 09-06-2016
bitbow bitbow is offline
Miembro
 
Registrado: jul 2006
Posts: 366
Poder: 18
bitbow Va camino a la fama
Hola, no se como estas armando tu sentencia SQL, descnozco si es alguna sintaxis definidia para una version especifica de MySQL, segun yo deberia de quedar asi, a menos que estes intentando realizar algo diferente.
Código SQL [-]
SELECT pu, cantidad, debe, haber, (debe + haber) as Incremental FROM detalle_liquidaciones_cta where idliquidacion=200;

-- Si tienes una consolta de una sola tabla no es necesario que pongas de qye tabla es cada campo, 
-- igual si son varias tablas solo si el campo se repite en alguna otra es necesario definir de que 
-- tabla viene
.

Saludos.
__________________
¡Ni como ayudarte Niño!!
bitbow
Responder Con Cita
  #3  
Antiguo 09-06-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Posiblemente el problema se deba a que tienes, en realidad, dos sentencias, el set y el select. Normalmente, MySQL no aceptará sentencias múltiples, y es posible que Navicat y Workbench separen las sentencias y lancen una consulta por cada una.

Con Zeos tendrías que mandar cada consulta aparte, aunque creo recordar que tiene un componente que sirve para eso, TZQLProcessor o TZQLScript, o algo así.

LineComment Saludos
Responder Con Cita
  #4  
Antiguo 09-06-2016
Tecnofacil Tecnofacil is offline
Miembro
 
Registrado: jun 2015
Posts: 50
Poder: 9
Tecnofacil Va por buen camino
Creo que me falto expresar que hace la consulta.
Código SQL [-]
Set @Sumatoria = 0;  -- Creo una variable para ir cargando el resultado del calculo de cada registro.
Suponiendo que tengo una tabla con debe y haber, (Básicamente es eso esa tabla), lo que quiero es que se agregue una nueva columna llamada "Sumatoria" donde va mostrando el saldo de la cuenta hasta esa linea.


Debe Haber Saldo
$100 $0 $ 100
$0 $30 $ 70
$500 $0 $570

Se entiende?
En los visores SQL funciona de maravilla
Responder Con Cita
  #5  
Antiguo 09-06-2016
bitbow bitbow is offline
Miembro
 
Registrado: jul 2006
Posts: 366
Poder: 18
bitbow Va camino a la fama
Una duda, estas corriendo esa sentencia como script o como consulta? Hay que recordar que son dos cosas distintas y por claras razones necesitan ser tratados de diferente forma dentro de la programación.

A simple vista es un script y dentro de un zquery se va a tratar como múltiples sentencias originando un error, lo que puedes hacer es meter esto en una función o procedimiento que te devuelva a modo de tabla (en sql server se puede así que supongo que aquí también).

Suerte.
__________________
¡Ni como ayudarte Niño!!
bitbow
Responder Con Cita
  #6  
Antiguo 10-06-2016
bitbow bitbow is offline
Miembro
 
Registrado: jul 2006
Posts: 366
Poder: 18
bitbow Va camino a la fama
Efectivamente como comentas, la consulta tal cual la tienes al inicio si corre en el editor SQL y no es un script (para el caso de MySQL), realice algunas pruebas y con un script equivalente al crear una vista en MySQL truena por lo que revise como podria hacerse lo que necesitas, despues e algunas pruebas llegue a esto >>

Código SQL [-]
SELECT t.id, t.valor,
         (SELECT SUM(x.valor) FROM tabla1 x  WHERE x.id <= t.id) AS cumulative_sum
    FROM `tabla1` t ORDER BY t.id

Esta claro que tienes sus inconvenientes pero puedes partir de aqui.

Saludos.
__________________
¡Ni como ayudarte Niño!!
bitbow
Responder Con Cita
  #7  
Antiguo 10-06-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Tecnofacil Ver Mensaje
Creo que me falto expresar que hace la consulta.
Código SQL [-]
Set @Sumatoria = 0;  -- Creo una variable para ir cargando el resultado del calculo de cada registro.
No hacía falta. Se entendía desde un principio. Requieres ambas consultas, y las puedes hacer sin problema, pero tienes que hacerlas una después de la otra o usar el TZSQLProcessor. El valor que asignes a @Sumatoria se preservará en la segunda consulta siempre y cuando no cambies de conexión.

LineComment Saludos
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
zeos con mysql vicvil MySQL 1 18-09-2008 20:30:06
Enviar variables Y guardarlas en MYSQL maravert Internet 5 18-02-2008 09:27:39
Parametros Out y Variables Delphi MySql RiverPlate MySQL 1 17-09-2006 15:45:11
MySql y Zeos Lib!! lroblesco Conexión con bases de datos 2 11-04-2006 19:14:44
!Zeos y mysql max 4.1.13 Carlosguiland MySQL 3 16-08-2005 17:08:02


La franja horaria es GMT +2. Ahora son las 01:12:31.


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