Club Delphi  
    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 10-06-2010
odrack odrack is offline
Miembro
 
Registrado: feb 2008
Posts: 167
Poder: 17
odrack Va por buen camino
Sql con rigth join

Saludos!

Tengo esta sentencia donde necesito buscar en 3 tablas diferentes.
Código SQL [-]
select ticket.serie, ticket.indticket, ticket.factura, ticket.fecha, totalpagar, enviado, 
sum(notacredito.total) as nc ,
ctasporcbr.importe, ctasporcbr.tipopago
from ticket 
right join notacredito on (notacredito.serie=ticket.serie and notacredito.ticket=ticket.indticket) 
right join ctasporcbr on (ctasporcbr.serie=ticket.serie and ctasporcbr.indticket=ticket.indticket)
where tautoriza="159" and ticket.fecha between '2010-06-09' and '2010-06-09' group by serie

esta buscando los datos en las 3 tablas y lo hace, el problema es cuando en algunas de las tablas (notacredito o ctasporcbr) no hay informacion, aqui se pierden algunos datos, ¿Como puedo hacer que aun que en ninguna o solo en una tabla esten los datos no se pierda?
Me refiero a que me muestre la informacion aun que solo aparesca en 2 tablas o en 1

Desde ya Gracias!!
Responder Con Cita
  #2  
Antiguo 10-06-2010
odrack odrack is offline
Miembro
 
Registrado: feb 2008
Posts: 167
Poder: 17
odrack Va por buen camino
Hola!

Ya he logrado resolver el caso, en la segunda sentencia del join, debe ser un left y woala se resuelve, ahora el caso es que me da (NULL)

Código SQL [-]
select ticket.serie, ticket.indticket, ticket.factura, ticket.fecha, totalpagar, enviado, 
sum(notacredito.total) as nc, 
(case when ctasporcbr.importe="(NULL)" then ctasporcbr.importe="0.00" else ctasporcbr.importe end)as PagoForaneo,  
(case when ctasporcbr.tipopago="(NULL)" then ctasporcbr.tipopago="Sin Cargo" else ctasporcbr.tipopago end) as FormaPago,
(totalpagar-(sum(notacredito.total)+ctasporcbr.importe))as totalfinal
from ticket 
right join notacredito on (notacredito.serie=ticket.serie and notacredito.ticket=ticket.indticket) 
left join ctasporcbr on (ctasporcbr.serie=ticket.serie and ctasporcbr.indticket=ticket.indticket)
where tautoriza="159" and ticket.fecha between '2010-06-09' and '2010-06-09' group by serie

Saben como puedo hacer una operacion para que no me muestre el resultado como (NULL)?

Dejo la sentencia

SALUDOS!!
Responder Con Cita
  #3  
Antiguo 10-06-2010
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Tendrías que decirnos que motor de base de datos estás usando. Si es Firebird podrías usar la sentencia case.

Código SQL [-]
select 
  case
    when Campo is null then 0
  else
    Campo
  end AliasCampo
from
  Tabla


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #4  
Antiguo 10-06-2010
odrack odrack is offline
Miembro
 
Registrado: feb 2008
Posts: 167
Poder: 17
odrack Va por buen camino
Utilizo MYSQL

He puesto case cuando es (NULL) pero me regresa el mismo valor
Responder Con Cita
  #5  
Antiguo 11-06-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola odrack, prueba con IFNULL.

Código SQL [-]
......................................
IFNULL(ctasporcbr.importe, "0.00") as PagoForaneo,  
IFNULL(ctasporcbr.tipopago, "Sin Cargo") as FormaPago
......................................

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
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
usando LEFT JOIN o RIGHT JOIN alcides SQL 8 03-05-2007 17:35:46
left join e inner join duda Patricio SQL 0 26-04-2007 22:06:43
LEFT INNER JOIN & RIGHT INNER JOIN Cabanyaler MS SQL Server 11 07-11-2005 18:09:58
LEFT OUTER JOIN e INNER JOIN Juntos alcides SQL 3 08-07-2005 18:06:27
join el_enigma1 Conexión con bases de datos 3 15-05-2004 08:08:52


La franja horaria es GMT +2. Ahora son las 23:56:10.


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