Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-01-2013
pjacob80 pjacob80 is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 23
Poder: 0
pjacob80 Va por buen camino
Cita:
Empezado por fjcg02 Ver Mensaje
Hola,

Qué motor de bbdd estás usando?

Saludos
Perdon por no aclarar, estoy usando firebird.


En cuanto al codigo que me pasas, no estoy seguro que sea asi, en realidad mi nivel de sql es basico, pero la tabla pagos la relacionas con la de trabajo? no necesariamente, como aclare antes, los pagos pueden ser distintos y se pueden hacer en varias veces.
todas las tablas serian relacionadas con el cliente, o sea, los trabajos que se le realizaron al cliente, y los pagos que realizo el mismo.
mi problema fundamentalmente es como poner en el qreport que me muestre en la columna del debe los trabajos y en el haber los pagos. y si muestro un pago por ejemplo, en la columna del debe tendria que estar vacia. no se si se entiende.

Última edición por pjacob80 fecha: 24-01-2013 a las 12:03:30.
Responder Con Cita
  #2  
Antiguo 24-01-2013
pjacob80 pjacob80 is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 23
Poder: 0
pjacob80 Va por buen camino
creo que deberia tener un "order by fecha", tanto de la tabla trabajos como la de pagos (ya que apareceran mezclados en el listado), y que se puede elegir un rango entre x fechas.
Responder Con Cita
  #3  
Antiguo 24-01-2013
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
Bueno,

supongo que los pagos se corresponderán a un trabajo realizado o futuro, no?

Depende de cómo tengas la información distribuida por las tablas, deberás utilizar una consulta o un procedimiento almacenado.

Si quieres saber el acumulado anterior, ya vas dando más pistas, lo que parece que nos lleva a un p.almacenado.

Confirmanos si es así para que te podamos orientar.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #4  
Antiguo 24-01-2013
pjacob80 pjacob80 is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 23
Poder: 0
pjacob80 Va por buen camino
los pagos son pagos de trabajos, pero supongamos que un trabajo valio 100, el cliente puede pagar 50, mas adelante pagar 20, y mas adelante 30. en la tabla que quiero deberia mostrarse asi:


fecha | descripcion | debe | haber | saldo
| saldo anterior | | | 0
1/1/13 | trabajo realizado | 100 | | 100
2/1/13 | pago cuota 1 | | 50 | 50
3/1/13 | pago cuota 2 | | 20 | 30
4/1/13 | pago cuota 3 | | 30 | 20
Responder Con Cita
  #5  
Antiguo 24-01-2013
pjacob80 pjacob80 is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 23
Poder: 0
pjacob80 Va por buen camino
aqui un ejemplo de un reporte impreso de un veterinario. lo subo para que se vea la idea.


Última edición por pjacob80 fecha: 24-01-2013 a las 14:43:24.
Responder Con Cita
  #6  
Antiguo 24-01-2013
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
Aprovechando que no está la jefa, aunque tengo mucho trabajo ....

prueba con esto, no está probado ni depurado pero creo que te puede poner en la pista. Para los puristas, es pseudocódigo sin probar !!
1. Calculamos el saldo hasta la fecha
2. Seleccionamos los trabajos y los pagos, por cada registro calculamos el saldo y lo sacamos.

Notas:
for select ... into variables;
suspend;
hace una select, por cada regsitro obtenido asigna las columnas a las variables, y suspend las presenta.

Por cada registro calculamos el saldo.
Sacamos los resultados

Espero que te sirva.

Código SQL [-]
CREATE OR ALTER PROCEDURE SP_PRUEBA (
    fechaDesde, FechaHasta date,
  idcliente integer)
  returns(
  fecha date,
  articulo varchar(50),
  debe numeric(10,2),
  haber numeric(10,2)
  saldo numeric(10,2)
  )
as
declare variable 
montante numeric(10,2);

begin
  /* Procedure Text */
/* inicializacmos las variables de salida */
  fecha = null;
  articulo='';
  debe= 0;
  haber= 0;
  saldo= 0;

  /* Calculamos los trabajos */
  SELECT SUM(TRABAJO.IMPORTE) FROM TRABAJO
  WHERE IDCLIENTE=:IDCLIENTE AND FECHA < :FechaDesde
  INTO montante;
  saldo= montante;
  /* Calculamos los pagos */
  SELECT SUM(PAGO.IMPORTE) FROM PAGO
  WHERE IDCLIENTE=:IDCLIENTE AND FECHA < :FechaDesde
  INTO montante;
  saldo= saldo - montante;
  /* ya tenemos la primera linea, es decir el saldo hasta la fecha desde, la sacamos */
  suspend;
  
  for select fecha, articulo, debe, haber 
  from (
    /* importes de los trabajos del cliente entre las fechas */
    select fecha, trabajo, importe, 0 
    from trabajo
    where 
      fecha >= :FechaDesde and fecha <= :FechaHasta
      and idcliente=:idCliente
    group by fecha
    UNION
    /* importes de los pagos del cliente entre las fechas */
    select  fecha, articulo, 0, importe
    from pago
    where 
      fecha >= :FechaDesde and fecha <= :FechaHasta 
      and idcliente=:idCliente
    group by fecha
      )
  order by fecha
  into fecha, articulo, debe, haber;
  saldo=saldo +debe-haber;
  /* sacamos los datos por cada registro */
  suspend;  
   
end^
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
consulta para resumen mensual David Jiménez SQL 30 25-03-2011 09:37:26
Error en cuenta/Login/cuenta robada coso___ La Taberna 17 24-02-2009 17:30:14
Configuración cuenta para envio de correo yomismo24 Internet 2 01-07-2008 17:27:26
Verificación de Cuenta Corriente y Nif albcastro Trucos 2 16-12-2007 21:18:27
Consulta resumen con subconsulta(ayuda) cmena SQL 5 01-07-2004 00:18:21


La franja horaria es GMT +2. Ahora son las 01:40:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi