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 30-09-2005
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 22
sakuragi Va por buen camino
Question unir 2 consultas con campos diferentes..

hola que tal

eh estado tratando de unir dos consultas con campos diferentes, leyendo manuales y libros pero no e podido dar con el problema.

bueno primero es la pregunta se puede haser esto.

tengo dos tablas:
clientes
proveedores

quiero unir los dos campos de los nombres de cada tabla.

que me aparesca:

"nombre nombre" en el resultado

nombre_cliente nombre_proveedor
-------------------------------------
juan telmex
pepe movistar
pacheco unefon



algo asi.

se puede hacer esto?

Código SQL [-]
 select (C.nombre)as nombre_cliente,(P.nombre)as nombre_proveedor
 from  proveedor P,cliente C
con este me da un resultado de repedidos todos los cliente scon todos los proveedores

entonses enseguida intente una union.

pero no se pueden unir por que me pone los dos campos en uno solo

bueno

gracias

saludos
__________________
OpenSuse OpenOffice.org icomputo
Responder Con Cita
  #2  
Antiguo 30-09-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
La clave está en cómo quieres relacionarlos. Es decir, tu quieres unir un nombre de cliente con un nombre de proveedor, pero ¿tendrás algun campo que relaciones las dos tablas no? Lo lógico sería:
(a) En la tabla cliente un código de proveedor (o similar)
(b) En la tabla proveedor, un código de cliente (o similar)

Se trata de hacer la consulta que has puesto, pero utilizando un JOIN por el campo de union entre ambas tablas.

Código SQL [-]
  select (C.nombre)as nombre_cliente,(P.nombre)as nombre_proveedor
 from  proveedor P INNER JOIN cliente C
on P.id=Cliente.idproveedor

... o similar
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 30-09-2005
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 22
sakuragi Va por buen camino
gracias por responder

pero la duda que tengo es poner campos que no tengan nada que ver entre si

como si fueran dos o tres consultas

pero que me las despliegue como si fueran campos de una tabla, pero que en realidad son campos de tablas diferentes

tengo tablas:
articulos
clientes
proveedor

cada tabla tiene su campo nombre que es el nombre de articulo,cliente,proveedor.

lo cual quiero desplegar, cada uno de los campos pero juntos

por ejemplo en un grid

articulo cliente proveedor
------------------------------
leche pepe movistar
paste juan telmex
pan ruperto unefon
tornillo jose
miguel
lolo
edgar

asi mas omenos que no tengan que ver unos con lo otros

como si fueran tres select a tres tablas pero poder mosrarlar en un grid jutnos asi como arriba.

se podra?

por que si hago un procedure que me ejecute los tres select

no me los pone juntos.

saludos

gracias
__________________
OpenSuse OpenOffice.org icomputo
Responder Con Cita
  #4  
Antiguo 30-09-2005
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 22
sakuragi Va por buen camino
bueno reafirmando la tabla antes puesta como que no se bio bien
haber si con el quote no se recorren los espacios

Cita:
articulo cliente proveedor
------------------------------
leche pepe movistar
paste juan telmex
pan ruperto unefon
tornillo jose
miguel
lolo
edgar
__________________
OpenSuse OpenOffice.org icomputo
Responder Con Cita
  #5  
Antiguo 30-09-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Creo que deberías mirar de hacerlo con una tabla temporal, porque con una consulta no acabo de verlo claro.
Crear la tabla temporal y añadir los registros de cada tabla a una columna.
El problema es que al no tener relación entre tablas, siempre te va a realizar el producto cartesiano entre las tablas y te van a salir registros repetidos (como ya has comentado)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 30-09-2005 a las 09:50:33.
Responder Con Cita
  #6  
Antiguo 30-09-2005
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 22
sakuragi Va por buen camino
gracias de nuevo

ya intente

hacer una tabla temporal

haciendo varios insert con su determinado select


pero el problema que tengo es que si son varios

me los va metiendo

pero me va dejando espasion null

por que primero me hace uno y despues el otro.


despues quise probar con un procedure

el primero si me lo inserte

los de mas con update para los campos que esten e null me los actulize el problema que el update tiene que ser referencia a algo. entonses me quede en las mismas otraves =S

ppor que si dejo ai la tabla con los null

ahora me meto en otra cuestion

quitar en una consulta en esa tabla los repetidos de cada columna

Código SQL [-]
 select distinct nom_cliente from temporal
asi no ahi problema

pero asi:
Código SQL [-]
 select distinct nom_cliente, distinct nom_proveedor from temporal

no se puede =S
__________________
OpenSuse OpenOffice.org icomputo
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


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


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