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 14-12-2005
Avatar de jwmoreira
jwmoreira jwmoreira is offline
Miembro
 
Registrado: jun 2004
Posts: 83
Poder: 23
jwmoreira Va por buen camino
A ver si te sirve ésto:
Código:
  
select tabla1.campo, tabla2.campo, tabla3.campo
from tabla1 left outer join tabla2 on tabla1.campo1 = tabla2.campo
	   left outer join tabla3 on tabla1.campo2 = tabla3.campo
ó también: (Versión 2.0)
Código:
 
select alias.campo, alias.campo, tabla3.campo
from (
select tabla1.campo, tabla2.campo
from tabla1 left outer join tabla2 on tabla1.campo1 = tabla2.campo
) alias left outer join tabla3 on alias.campo = tabla3.campo
Saludos,
Jorge.
Responder Con Cita
  #2  
Antiguo 14-12-2005
Avatar de jwmoreira
jwmoreira jwmoreira is offline
Miembro
 
Registrado: jun 2004
Posts: 83
Poder: 23
jwmoreira Va por buen camino
Wink

Perdon, a lo que me refiero con lo de la versión 2.0 eso es para Firebird, si es sql server, oracle, Informix no he tenido problema.

Saludos,
Jorge.
Responder Con Cita
  #3  
Antiguo 14-12-2005
FOURIER FOURIER is offline
Miembro
 
Registrado: dic 2005
Posts: 40
Poder: 0
FOURIER Va por buen camino
Espero Que Te Sirva Esto

Buenas tardes,

primero que nada lo que entiendo es que quieres desplegar los sigguiente:

T1.CODIGO T1.NOMBRE T1.SUELDO T1.CODIGOCOMENTARIO T3.DESCRIPION SUM(T2.Descuento)

esas son tus tablas;

Tabla1
codigo Char
nombre Char
sueldo Float
codigocomentario Char

Tabla2
codigo Char (relacion con tabla1.codigo)
descuento

Tabla3 (contiene comenatarios)
codigo Char (relacion con tabla1.codigocomentario)
descripcion Text

a lo que entiendo con tu esquema es que un comentario en tabla3 lo puedes asignar a varias tablas1... finalmente entiendo también que la tabla2 contiene varios descuentos para la tabla2 y que además de eso la tabla 2 no tiene campo llave.. en fin

y finalmente segun la consulta que me pones que haces

Select T1.codigo,T1.nombre,T1.sueldo,T1.codigocomentario, SUM(T2.descuento) As descuento
From Tabla1 as T1
LEFT JOIN Tabla2 As T2 ON T1.codigo = T2.codigo
WHERE T1.codigo= num
Group by T1.codigo,T1.nombre,T1.sueldo,T1.codigocomentario
Order By T1.codigo

entiendo que pasas como parámeto el código a T1.codigo por medio de la variable num.

si todo esto es cierto entonces podríamos resolver tu problema de la siguiente forma

select T1.Codigo,T1.nombre,T1.sueldo,T1.codigocomentario,T3.descripcion,(select sum(T2.descuento) from Tabla2 as T2 where T2.codigo=T1.codigo) as Descuentos from Tabla1 as T1,Tabla3 as T3 where T1.codigocomentario=T3.codigo and T1.codigo= num;
Responder Con Cita
  #4  
Antiguo 14-12-2005
Avatar de jwmoreira
jwmoreira jwmoreira is offline
Miembro
 
Registrado: jun 2004
Posts: 83
Poder: 23
jwmoreira Va por buen camino
Aplicado a tu select:

Código:
Select T1.codigo,T1.nombre,T1.sueldo,T1.codigocomentario, (Select SUM(T2.descuento) From Tabla2 As T2 Where T2.codigo = T1.codigo ) As descuento, T3.descripcion
From Tabla1 as T1 LEFT OUTER JOIN Tabla3 As T3 ON T1.codigocomentario = T3.codigo
WHERE T1.codigo= :pnum 
Order By T1.codigo
ó
Código:
Select T.*,T3.descripcion FROM (
   Select T1.codigo,T1.nombre,T1.sueldo,T1.codigocomentario, SUM(T2.descuento) As descuento
   From Tabla1 as T1 LEFT OUTER JOIN Tabla2 As T2 ON T1.codigo = T2.codigo
   WHERE T1.codigo= :pnum 
  Group by T1.codigo,T1.nombre,T1.sueldo,T1.codigocomentario
) As T LEFT OUTER JOIN Tabla3 As T3 ON T.codigocomentario = T3.codigo
Order By T.codigo
Saludos,
Jorge.
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


La franja horaria es GMT +2. Ahora son las 05:24:44.


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