Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-01-2008
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Question Visualizar registros de dos tablas

Hola a todos... Realmente la cuestión es la siguiente, tengo una tabla que almacena datos de una factura (de agua potable) y tengo otra que almacena información referente a los pagos que se reciben de una determinada factura...

En un determinado momento un cliente me puede solicitar el historial de sus pagos. así que el sistema debe arrojar los números de la factura y sus respectivos pagos. La consulta sería esta:
Código SQL [-]
select * from facturas, pagosfacturas where numerofactura=numeropago and codigousuario=:usuario ...

si el usuario nunca tuvo un atraso la consulta me mostrará todas las facturas y sus pagos, pero si tuvo un atraso, cómo muestro la descripción de la factura atrasada?. espero me hayan entendido

Muchas gracias por sus aportes...
Responder Con Cita
  #2  
Antiguo 29-01-2008
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
En caso de tener un atraso la factura no tendrá pago correspondiente por lo que debes hacer un left join

Código SQL [-]
select * 
from facturas F left join pagos P facturas on F.numerofactura=P.numeropago
where codigousuario=:usuario ...

Un saúdo
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)

Última edición por Ivanzinho fecha: 29-01-2008 a las 16:43:31.
Responder Con Cita
  #3  
Antiguo 29-01-2008
Avatar de Ferrari
Ferrari Ferrari is offline
Miembro
 
Registrado: jun 2006
Ubicación: Torreón, México
Posts: 154
Poder: 18
Ferrari Va por buen camino
Wink

Hola así a grandes razgos como pintas tu situacion es cuestion de que en tu query sigas con las sentencias de filtro.
Ej de tu mismo codigo:
Código SQL [-]
select * from facturas, pagosfacturas where numerofactura=numeropago and codigousuario=:usuario 
CASE 
  WHEN Fecha_Pago > Fecha_LimitePago THEN 'Retraso' 
  ELSE 'Normal'
END,
Algo asi te ayudariaSaludos

Última edición por Ferrari fecha: 29-01-2008 a las 16:49:26.
Responder Con Cita
  #4  
Antiguo 29-01-2008
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
Cita:
Empezado por Ferrari Ver Mensaje
Hola así a grandes razgos como pintas tu situacion es cuestion de que en tu query sigas con las sentencias de filtro.
Ej de tu mismo codigo
Código SQL [-]
select * from facturas, pagosfacturas where numerofactura=numeropago and codigousuario=:usuario 
CASE 
  WHEN Fecha_Pago > Fecha_LimitePago THEN 'Retraso' 
  ELSE 'Normal' END,

Algo asi te ayudariaSaludos

Tienes razón Ferrari, había entendido mal la pregunta, pero viendo tu respuesta voto por ella .

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #5  
Antiguo 29-01-2008
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Hola amigos, gracias por sus aportes

A ver, es algo como esto...

se han expedido 20 facturas para un determinado usuario el el caso de que no se haya atrasado la consulta reflejará registro de la siguiente manera:
FacturaNo. fechapago
1 31/01/2008
2 28/02/2008
3 30/03/2008
. .
. .
. .
20 ...

serían 20 registros.

Esos mismos 20 registros se necesitan visualizar, no importando que no exista un registro relacionado en la tabla de "pago", en este caso

FacturaNo. fechapago
1 31/01/2008
2 (aquí no hay pago)
3 30/03/2008
. .
. .
19 (aquí no hay pago)
20 ...

bueno creo que me he explicado mejor
Responder Con Cita
  #6  
Antiguo 29-01-2008
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
Entonces es lo que entendí al principio . Debes usar la consulta que te indiqué anteriormente.

Un saúdo
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)

Última edición por Ivanzinho fecha: 29-01-2008 a las 20:08:27.
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
importar registros de tablas juliet DB2 1 14-12-2006 16:19:34
Guardar Registros en diferentes tablas Darlingkarina SQL 4 12-07-2006 01:43:30
Visualizar tablas con TDatabase D@byt Conexión con bases de datos 1 08-06-2005 17:35:47
Eliminar registros en tablas enlazadas vhirginia Conexión con bases de datos 12 29-04-2004 22:35:08
¿Bloquear registros en tablas foxpro 2.6? ALMERA Conexión con bases de datos 0 25-03-2004 11:42:49


La franja horaria es GMT +2. Ahora son las 23:30:35.


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