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 05-07-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Union en BDE

a ver chicos, necesito una pequeña ayuda, estoy tratando de unis dos tablas en paradox por medio de un tquery en delphi 5, tengo dos tablas, pesca y produccion, yo quiero una resultante con todo lo de pesca y todo lo de produccion, esta tabla resultante la estoy tratando de hacer por medio de esta sentencia

Código:
Select * from "pesca" union Select * from "produccion"
pero me lanza una excepcion Type Mismatch, sera que el BDE no soporta esta instruccion o es que me falta algo??.

La estuve haciendo por un join pero me la documentacion que he encontrado dice que esa clausula se utiliza para unir tablas con un campo en comun


Cualquier ayuda se los agradezco
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #2  
Antiguo 05-07-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Joins y Unions son dos cosas distintas. La primera une columnas y la segunda une filas. ¿Cuál es la que quieres?

// Saludos
Responder Con Cita
  #3  
Antiguo 05-07-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Parece que recopile mal la informacion

Hasta donde pude entender con union lograba unir el resultado de dos select sin importar campos en comun, o sea, simplemente el select 1 y el select 2 los muestra en una sola tabla o cursor, eso es lo que quiero.

por poner un ejmplo:
Código:
resultado de la tabla A
Fecha       Pesca
11/05        1500
12/05        1700
Código:
resultado de la tabla b
Fecha       Harina  Aceite
11/05        250      120
12/05        400      345
esto lo quiero montar en un reporte donde cada linea detalle debe tener el campo Pesca de la Tabla A y los campos harina y aceite de la B

quise hacerlo por medio de SQl pero me da los inconvenientes de arriba
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #4  
Antiguo 05-07-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿
Código SQL [-]
select A.Fecha, A.Pesca, B.Harina, B.Aceite
from A, B
where A.Fecha = B.Fecha
?

// Saludos
Responder Con Cita
  #5  
Antiguo 05-07-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Una cosa: ni joins ni union pueden servirte para unir cualquier cosa. Un join necesariamente implica igualdad del número de filas (a menos que uses un left o right join para suplir filas restantes) y un union implica igualdad en el número de columnas (y claro está que deberán ser del mismo tipo)

// Saludos
Responder Con Cita
  #6  
Antiguo 05-07-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Ok ahora si me queda claro el error, gracias Roman, entonces creo que debere realizar una tabla temporal, porq necesito un campo de la primera y un campo de la segunda, y eso que me habias recomendado

Código SQL [-]
select A.Fecha, A.Pesca, B.Harina, B.Aceite
from A, B
where A.Fecha = B.Fecha

no me sirve por q si un registro aparece en una tabla y no en la otra no me lo va a reportar


Gracias por aclararme la duda
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #7  
Antiguo 05-07-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por eduarcol
no me sirve por q si un registro aparece en una tabla y no en la otra no me lo va a reportar
Para eso son los inner joins (left, right etc.) como te mencione antes, para incluir registros aun cuando no se encuentren en la otra tabla.
Responder Con Cita
  #8  
Antiguo 05-07-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
ok, si claro fue un error de lectura mio

Cita:
Empezado por roman
Un join necesariamente implica igualdad del número de filas (a menos que uses un left o right join para suplir filas restantes)
en vez de suplir entendi suprimir, pues ni modo ahora a investigar un poco sobre las joins
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #9  
Antiguo 05-07-2004
Avatar de __marcsc
__marcsc __marcsc is offline
Miembro
 
Registrado: may 2003
Ubicación: Girona
Posts: 577
Poder: 22
__marcsc Va por buen camino
Cita:
Empezado por roman
Para eso son los inner joins (left, right etc.) como te mencione antes, para incluir registros aun cuando no se encuentren en la otra tabla.
Supongo que te has confundido, los left y right son outer joins, que son los que no filtran el registro en caso de no haber match
Responder Con Cita
  #10  
Antiguo 05-07-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Tienes toda la razón. Es que con esta gripa...
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 11:34:21.


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