Realizar Join entre n1 líneas de una tabla y n2 líneas de otra tabla
El caso es que si tengo los registros de una tabla A con valores 1, 2, 3, 4, y una tabla B con valores A y B, quiero que un Select me devuelva un 'join' en el que los valores de la tabla A se unan con los valores de la tabla B en un número igual a la cantidad de registros que tenga la tabla B, y el resto sea null en el valor devuelto por tabla B.
Algo así como obtener 1 A 2 B 3 null 4 null Si fueran por ejemplo 7 registros en tabla A (del 1 al 7) y 4 registros en tabla B (de A a D), tendría que obtener 1 A 2 B 3 C 4 D 5 null 6 null 7 null Espero haberme explicado correctamente :p |
Hola gluglu, ¿se relacionan por algún campo tus dos tablas?.
Saluditos |
Si ... claro .... se me olvidó ese detalle. Digamos que en el caso del ejemplo los registros de amabas tablas tuvieran una clave común CLAVE1.
|
Cita:
Saluditos |
Lo acabo de realizar con un Stored Procedure :
Y la consulta sería algo como
|
La solución de Caro parece más sencillita :D
|
Que barbaridad !!
Me acabo de dar cuenta de lo tonto que he sido al crear este hilo .... :( Mil disculpas Caro ! Está claro que uno se complica la vida y después al ponerlo en un hilo y querer simplificar el hilo al máximo, no se dá uno cuenta de lo que escribe .... A ver .... la cosa es más complicada que lo explicado, pero entonces ya volvemos a enreversar tanto la explicación que probablemente nadie me entienda :confused: Hago un Select de una tabla con un montón de campos, con una group by de varios campos y una condición posterior en un having by.
Este Select busca en BOOKINGS_OBJECTSTYPE todos los registros y los agrupa por BOOKINGNO, CATEGORYNO y SUBCATEGORYNO. Cada uno de esos registros tiene una cantidad determinada (QUANTITY) que agrupo a su vez en Sum(QUANTITY), y además obtengo un número de registros en otra tabla adicional relacionada también. Esta diferencia entre ambos valores, la aplico internamente en un SP denominado SP_PAXDETAIL_AUTOINC para que de cada BOOKINGNO, CATEGORYNO y SUBCATEGORYNO me devuelva N registros dependiendo de esa diferencia anterior. Y a todo estos resultados, ahora me toca buscar en otra tabla diferente otros registros relacionados por otro campo, y si existen, los devuelvo con sus campos para los N primeros registros que obtuve en la consulta anterior. Demasiado complicado para entenderlo rápidamente ... :o Por eso intenté simplificar al máximo el hilo y no me dí cuenta de la trivialidad que estaba preguntado !!! :p |
Trivial ... de todas maneras !!
La verdad es que a pesar de todo con un simple Left Join funciona, incluido todo el tocho de Select que he puesto antes :o Gracias por haberme hecho darme cuenta de lo simple dentro de lo complicado ! |
La franja horaria es GMT +2. Ahora son las 07:17:34. |
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