FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Join que me devuelva un Registro adicional
Hola !
Tengo una consulta compleja que entre otros, hace un Left Join con una tabla determinada, de tal manera de que si existen registros en esa tabla con la clave indicada, me devuelve X registros dependiendo de los registros que cumplan la condición de la clave. Lo que quiero conseguir es que si el Join devuelve algún registro, además me añada un registro con la Clave = 0. No sé si me he explicado correctamente.
Si TABLA2 contiene registros con CLAVE, entonces que me devuelva además un registro adicional con CLAVE = 0 Ejemplo : TABLA1 CLAVE A B C TABLA2 CLAVE, SUBCLAVE B 1 B 2 B 3 La consulta me devería devolver : CLAVE, SUBCLAVE A B 0 B 1 B 2 B 3 C Necesito que este valor me lo devuelva el concreto el 'Join' ya que hay otros múltiples Join's que se generan antes, y no lo puedo hacer con subconsultas. Gracias por vuestra ayuda.
__________________
Piensa siempre en positivo ! |
#2
|
||||
|
||||
No sé si será eficiente o no .... pero esto parece que funciona :
__________________
Piensa siempre en positivo ! |
#3
|
|||
|
|||
Cita:
saludos Última edición por egostar fecha: 12-08-2013 a las 17:06:09. |
#4
|
||||
|
||||
Hola Egostar !
La imagen que adjuntas se refiere al resultado de un Join normal, y queda claro cual es el resultado. Lo que necesito, es que en los registros con la clave B, me añada un registro B con una clave 0, que en tu ejemplo no se muestra. La consulta y las tablas que he puesto aquí son muy simplificadas, a modo de ejemplo. Pero lo que trataba de explicar era que si existen registros en la Tabla2 con la Clave correspondiente, la consulta me devuelva en cada caso que exista esa clave en Tabla2, un registro adicional con SUBCLAVE = 0 Cita:
__________________
Piensa siempre en positivo ! |
#5
|
||||
|
||||
¿Y esos números 'subclave' qué valores pueden tener?, lo digo porque si son valores fijos entonces puedes hacerlo con un store procedure y un bucle desde 0 hasta N-1 recorriendo la tabla 2.
|
#6
|
||||
|
||||
Hola Casimiro !
Los valores son valores que están en la Tabla2, según los haya creado el usuario, por lo tanto no son 'fijos'. Sé que todo lo que pretendo lo puedo meter en un Stored Procedure (por cierto, no lo dije, utilizo Firebird 2.1), y ahí en el SP hago lo que quiero. Lo que pasa es que el asunto viene por otro lado ... Tenía una consulta hecha en la cual posteriormente, recorriendo dicha consulta, tenía que buscar un valor nuevo dependiendo de los valores de la consulta inicial. He tenido que realizar algunos cambios en algunas tablas, añadiendo algunos campos más, y ahora se me plantea optimizar esa consulta, si fuera posible. Y quiero controlar si el tiempo es más eficiente teniendo una consulta inicial de aprox. 40 registros, y recorrer esa consulta de 40 registros para después realizar unas 180 consultas adicionales en un bucle, dependiendo del valor de esos 40 registros iniciales, o si es mejor en cuestiones de tiempo obtener inicialmente una consulta de unos 1200 registros, tratar esos 1200 registros y no tener que realizar consultas adicionales en un bucle de programa. Es por ello que intentaba optimizar la consulta en sí misma, sin la necesidad de tener que crear un SP.
__________________
Piensa siempre en positivo ! |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
I. Explorer 7 abre siempre una ventana adicional que da error y se situa al frente | Wonni | Windows | 4 | 14-06-2007 00:27:37 |
usando LEFT JOIN o RIGHT JOIN | alcides | SQL | 8 | 03-05-2007 17:35:46 |
left join e inner join duda | Patricio | SQL | 0 | 26-04-2007 22:06:43 |
LEFT OUTER JOIN e INNER JOIN Juntos | alcides | SQL | 3 | 08-07-2005 18:06:27 |
Adicional Registro | simon | Conexión con bases de datos | 17 | 06-07-2004 17:58:04 |
|