Ver Mensaje Individual
  #1  
Antiguo 28-08-2022
GINMARMENOR GINMARMENOR is offline
Miembro
 
Registrado: feb 2016
Posts: 58
Reputación: 9
GINMARMENOR Va por buen camino
Unir dos tablas sin relación

Tengo dos tablas creadas en Firebird (*.FDB), quiero unirlas para sacar un informe pero me encuentro con el siguiente problema, como es un poco complicado expresarlo os lo pongo en un ejemplo, esta tabla sería la original:

Código Delphi [-]
                
                  TABLA PEDIDOS                                    TABLA COMPRAS
             
   ID   CODIGO    NOMBRE         CANTIDAD                    ID  CODIGO      NOMBRE         CANTIDAD

    1       A001   TORNILLOS A      5.000                     1    A002     ARANDELAS A      20.000
    2       A002   ARANDELAS A      6.000                     2    A001     TORNILLOS A      15.000
    3       A003   TUERCAS A        4.000                     3    A002     ARANDELAS A      20.000
    4       A001   TORNILLOS A      4.000                     4    A003     TUERCAS A        15.000
    5       A002   ARANDELAS A      3.000                     5    A001     TORNILLOS A      25.000

Lo que hago mediante SQL, es intentar filtrar la tabla pedidos y compras y filtrar por el codigo A001 (TORNILLOS A) y obtener en un informe la cantidad de pedidos y comprados de este artículo, el codigo que utilizo para esto es


Código SQL [-]
            select * from pedidos inner join compras on pedidos.id=Compras.Id where pedidos.id=' + 
            Quotedstr('A001') + 'and Compras.Id=' + Quotedstr('A001')

De esta informe que lo hago en Rave Reports, me sale de la siguiente manera no sale nada por que no coincidente al filtrar un mismo registro con los id iguales.

Si el código SQL es el siguiente:
Código SQL [-]
select * from pedidos inner join compras on pedidos.id=Compras.Id where pedidos.id=' + 
            Quotedstr('A001');

El informe es el siguiente:
Código Delphi [-]
                TABLA PEDIDOS                                    TABLA COMPRAS
             
   ID   CODIGO    NOMBRE         CANTIDAD                    ID  CODIGO      NOMBRE         CANTIDAD

    1       A001   TORNILLOS A      5.000                     1    A002     ARANDELAS A      20.000    
    4       A001   TORNILLOS A      4.000                     4    A003     TUERCAS A        15.000

También seria igual si el código es left join, y y si con right join.

El informe sería:
Código Delphi [-]
 ID   CODIGO    NOMBRE         CANTIDAD              ID  CODIGO      NOMBRE         CANTIDAD
    
    2       A002   ARANDELAS A      6.000             2    A001     TORNILLOS A      15.000 
    5       A002   ARANDELAS A      3.000             5    A001     TORNILLOS A      25.000
Si lo filtro por la tabla compras me arrastra los datos del mismo registro de la tabla Pedidos y al revés y sólo busco que me filtre en ambas tablas las que son iguales al código que espefico.

Lo he intentado con Inner Outer Join, y con las distintas formas de SQL JOINS SQL Joins

Mi intención es poder sacar el siguiente informe:

Código Delphi [-]
            TABLA PEDIDOS                                    TABLA COMPRAS
             
   ID   CODIGO    NOMBRE         CANTIDAD      ID  CODIGO      NOMBRE         CANTIDAD

    1       A001   TORNILLOS A      5.000        2    A001     TORNILLOS A      15.000                                                                              
    4       A001   TORNILLOS A      4.000        5    A001     TORNILLOS A      25.000

Donde puedo ver los Tornillos pedidos y Comprados en un sólo informe, pero no encuentro la manera de filtrar ambas tablas y unirlas en este informe.
Responder Con Cita