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
  #21  
Antiguo 31-07-2007
Vichomo Vichomo is offline
Miembro
 
Registrado: jul 2007
Posts: 21
Poder: 0
Vichomo Va por buen camino
Cool sigue el mismo resultado

Cita:
Empezado por TheFlame
Hola, me alegra que mi aporte te sirviera.
Para que obtengas todos los registros de tu tabla Clientes tendrías que hacer los Joins con Right o Left, a mí parecer debería funcionar con Right, la consulta llegaría a ser de la siguiente forma:


Código SQL [-]Select Clientes.cvecli, Clientes.razso, Sum(Detalle_remision.canti) as Emulsion, Clientes.Saldo

Código SQL [-]
From Clientes Right Join Remisiones On Clientes.cvecli=Remisiones.cvecli
Inner join Detalle_remision on Remisiones.cverem=Detalle_remision.cverem
inner join productos on detalle_remision.cvepro=productos.cvepro
where detalle_remision.cvepro=1 or detalle_remision.cvepro=2
Group By Clientes.cvecli, Clientes.razso, Clientes.Saldo




Nota: Solo el cambio fue en el primer Join, porque queremos mostrar todos los resultados de la tabla Clientes si es que no funciona con Right cámbialo por Left

Saludos.
Oie amigo, no funciono, lo cambie por Left y tampoco funciono, que estara mal?
Responder Con Cita
  #22  
Antiguo 31-07-2007
Avatar de TheFlame
TheFlame TheFlame is offline
Miembro
 
Registrado: jul 2007
Posts: 12
Poder: 0
TheFlame Va por buen camino
Red face Ups..

Ups. Te ruego que me disculpes por olvidar colocar una palabra más en la consulta. La cual quedaría como sigue:

Código SQL [-]
Select Clientes.cvecli, Clientes.razso, Sum(Detalle_remision.canti) as Emulsion, Clientes.Saldo
From Clientes  Right Outer Join Remisiones On Clientes.cvecli=Remisiones.cvecli
Inner join Detalle_remision on Remisiones.cverem=Detalle_remision.cverem
inner join productos on detalle_remision.cvepro=productos.cvepro
where detalle_remision.cvepro=1 or detalle_remision.cvepro=2
Group By Clientes.cvecli, Clientes.razso, Clientes.Saldo

Espero que esta si te de el resultado que esperas.
Saludos.
Responder Con Cita
  #23  
Antiguo 01-08-2007
Vichomo Vichomo is offline
Miembro
 
Registrado: jul 2007
Posts: 21
Poder: 0
Vichomo Va por buen camino
Cita:
Empezado por TheFlame
Ups. Te ruego que me disculpes por olvidar colocar una palabra más en la consulta. La cual quedaría como sigue:

Código SQL [-]Select Clientes.cvecli, Clientes.razso, Sum(Detalle_remision.canti) as Emulsion, Clientes.Saldo From Clientes Right Outer Join Remisiones On Clientes.cvecli=Remisiones.cvecli Inner join Detalle_remision on Remisiones.cverem=Detalle_remision.cverem inner join productos on detalle_remision.cvepro=productos.cvepro where detalle_remision.cvepro=1 or detalle_remision.cvepro=2 Group By Clientes.cvecli, Clientes.razso, Clientes.Saldo


Espero que esta si te de el resultado que esperas.
Saludos.
Que crees amigooo ???? Nada, me sigue dando el mismo resultado, no hay diferencia alguna solo poniendole inner join, o left join, o right join, o right outer join o left outer join, me urge, que sera mi amigo?
Responder Con Cita
  #24  
Antiguo 01-08-2007
Avatar de TheFlame
TheFlame TheFlame is offline
Miembro
 
Registrado: jul 2007
Posts: 12
Poder: 0
TheFlame Va por buen camino
¿Con que motor de base de datos estas Trabajando?
la ultima consulta que te mande funciona con SQL Server 2000.
Saludos.

Última edición por TheFlame fecha: 01-08-2007 a las 17:13:17.
Responder Con Cita
  #25  
Antiguo 01-08-2007
Vichomo Vichomo is offline
Miembro
 
Registrado: jul 2007
Posts: 21
Poder: 0
Vichomo Va por buen camino
Wink

Cita:
Empezado por TheFlame
¿Con que motor de base de datos estas Trabajando?
la ultima consulta que te mande funciona con SQL Server 2000.
Saludos.
Trabajo con Interbase 6, pero fijate que si sirve el Rigth Outer Join, porque lo he hecho en otras consultas menos complicadas y si me trae campos nulos, pero en esta no. porque sera, agradezco tu ayuda...
Responder Con Cita
  #26  
Antiguo 01-08-2007
Avatar de TheFlame
TheFlame TheFlame is offline
Miembro
 
Registrado: jul 2007
Posts: 12
Poder: 0
TheFlame Va por buen camino
Red face

Amigo “Vichomo”, te cuento que en esto de ir aprendiendo, aprendí algo mas respecto a consultas SQL.
Lo que tenemos que hacer para obtener un resultado determinado con las consultas como en este caso es: primero obtener los Inner Joins de las tablas Productos, Detalle_Remisiones y Remision para luego utilizar el Left o Right Outer con la tabla Clientes, quedaría mas o menos así:

Código SQL [-]
Select Clientes.cvecli, Clientes.razso, Sum(Detalle_Remision.canti) as Emulsion, Clientes.Saldo
From ((Detalle_Remision Inner Join Productos On Detalle_Remision.cvepro=Productos.cvepro) 
Inner Join Remisiones On Remisiones.cverem=Detalle_Remision.cverem)
Right Outer Join Clientes On Remisiones.cvecli=Clientes.cvecli
Where Detalle_Remision.cvepro=1 or Detalle_Remision.cvepro=2
Group By Clientes.cvecli,Clientes.razso,Clientes.Saldo

Espero que esta vez si te sea de ayuda.
¡Saludos… y suerte!
Responder Con Cita
  #27  
Antiguo 02-08-2007
Vichomo Vichomo is offline
Miembro
 
Registrado: jul 2007
Posts: 21
Poder: 0
Vichomo Va por buen camino
Mala suerte TheFlame, sigue el mismo resultado...
Responder Con Cita
  #28  
Antiguo 02-08-2007
Avatar de TheFlame
TheFlame TheFlame is offline
Miembro
 
Registrado: jul 2007
Posts: 12
Poder: 0
TheFlame Va por buen camino
Wink Espero esta si sea

Te propongo que vayamos paso a paso para detectar en que Join es que la consulta no funciona.
Primero probamos así:

Código:
 
Select Clientes.cvecli,Clientes.razso,Clientes.saldo
From Clientes Right Outer Join Remisiones On Clientes.cvecli=Remisiones.cvecli
Group By Clientes.cvecli,Clientes.razso,Clientes.Saldo
Debería mostrarte a todos los clientes.
Segundo: hacemos el Join con Detalle_Remisiones

Código:
 
Select Clientes.cvecli,Clientes.razso,Sum(Detalle_Remisiones.canti) as Emulsion,Clientes.saldo
From (Remisiones Inner Join Detalle_Remision On Remisiones.cverem=Detalle_Remision.cverem)
Right Outer Join Clientes On Remisiones.cvecli= Clientes.cvecli
Group By Clientes.cvecli,Clientes.razso,Clientes.Saldo
Debería seguir mostrándote a todos los clientes.
Tercero: hacemos el filtrado

Código:
 
Select Clientes.cvecli,Clientes.razso,Sum(Detalle_Remision.canti) as Emulsion,Clientes.saldo
From (Remisiones Inner Join Detalle_Remision On Remisiones.cverem=Detalle_Remision.cverem)
Right Outer Join Clientes On Remisiones.cvecli= Clientes.cvecli
Where Detalle_Remision.cvepro=1 or Detalle_Remision.cvepro=2
Group By Clientes.cvecli,Clientes.razso,Clientes.Saldo
Espero me comentes como te fue.
Saludos.

Última edición por TheFlame fecha: 02-08-2007 a las 16:01:23. Razón: Salio mal el SQL
Responder Con Cita
  #29  
Antiguo 02-08-2007
Vichomo Vichomo is offline
Miembro
 
Registrado: jul 2007
Posts: 21
Poder: 0
Vichomo Va por buen camino
Red face nada, pero lo resolvi de otra manera

Cita:
Empezado por TheFlame Ver Mensaje
Te propongo que vayamos paso a paso para detectar en que Join es que la consulta no funciona.
Primero probamos así:

Código:
 
Select Clientes.cvecli,Clientes.razso,Clientes.saldo
From Clientes Right Outer Join Remisiones On Clientes.cvecli=Remisiones.cvecli
Group By Clientes.cvecli,Clientes.razso,Clientes.Saldo
Debería mostrarte a todos los clientes.
Segundo: hacemos el Join con Detalle_Remisiones

Código:
 
Select Clientes.cvecli,Clientes.razso,Sum(Detalle_Remisiones.canti) as Emulsion,Clientes.saldo
From (Remisiones Inner Join Detalle_Remision On Remisiones.cverem=Detalle_Remision.cverem)
Right Outer Join Clientes On Remisiones.cvecli= Clientes.cvecli
Group By Clientes.cvecli,Clientes.razso,Clientes.Saldo
Debería seguir mostrándote a todos los clientes.
Tercero: hacemos el filtrado

Código:
 
Select Clientes.cvecli,Clientes.razso,Sum(Detalle_Remision.canti) as Emulsion,Clientes.saldo
From (Remisiones Inner Join Detalle_Remision On Remisiones.cverem=Detalle_Remision.cverem)
Right Outer Join Clientes On Remisiones.cvecli= Clientes.cvecli
Where Detalle_Remision.cvepro=1 or Detalle_Remision.cvepro=2
Group By Clientes.cvecli,Clientes.razso,Clientes.Saldo
Espero me comentes como te fue.
Saludos.
Hola TheFlame, mira no funciono, pero ya despues de tanto me fui a lo mas tradicional o facil, puse en mi pantalla dos botones uno que me muestra los clientes con emulsion, y otro donde me muestre todos los clientes, talvez no esta un tanto automatizado, pero es urgente y no quedo de otra, gracias por todo de todas maneras!!

Saludos...
Responder Con Cita
  #30  
Antiguo 02-08-2007
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 21
Enan0 Va por buen camino
a ver!! mira intentre traducirlo a un SQL CLASICO!, ya que el LEFT join y right join no los manejo muy bien!
Bueno sin conocer la estructura de las tablas.. a ver si esto funca!!

Código:
Select Clientes.cvecli, Clientes.razso, Sum(Detalle_Remision.canti) as Emulsion, Clientes.Saldo
From Detalle_Remision, Productos  ,Remisiones,Clientes 
Where Detalle_Remision.cvepro=1 or Detalle_Remision.cvepro=2 
and Detalle_Remision.cvepro=Productos.cvepro and  Remisiones.cvecli=Clientes.cvecli
Group By Clientes.cvecli,Clientes.razso,Clientes.Saldo
Si no Pasame una pequeña descripcion de las tablas (los cambios que deberian Relacionarse) y te doy una mano haciendolo asi.

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
Imprimir resultado de 2 tablas con un Query maravert Impresión 2 06-12-2006 17:57:59
Query entre dos tablas de distintas databases tefots Firebird e Interbase 2 06-11-2006 15:28:29
nombre de las tablas en un query ercrizeporta Conexión con bases de datos 2 28-09-2006 17:30:46
Query a Tablas Paradox pelaorb68 Conexión con bases de datos 0 13-01-2006 23:25:25
Query con tablas temporales cartmanrules Firebird e Interbase 4 27-05-2004 10:23:47


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


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