FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Esta subconsulta puede devolver como máximo un registro
Hola a tod@s, de nuevo por estos lares
Código:
Tabla CONTRATOS =============== ID_Clave ------> el identificador del contrato ID_Inquilino --> el identificador del inquilino (inquilino.ID_CLAVE) ID_Propiedad --> el identificador de la propiedad (propiedad.ID_CLAVE) ID_Propietario > el identificador del propietario de la propiedad Tabla INQUILINO =============== ID_Clave ------> el identificador del inquilino ... Tabla PROPIEDAD =============== ID_Clave ------> el identificador de la propiedad TIPO ----------> el tipo de propiedad (vivienda, garaje, comercial, etc) ... Inicialmente habia probado con esto: pero no vale, ya que puede haber (y de hecho los hay) inquilinos con varias propiedades alquiladas, mensaje de error: Esta subconsulta puede devolver como máximo un registro Gracias adelantadas salvica |
#2
|
||||
|
||||
eso te regresa todos los registros de A y te muestra las ocurrencias en la tabla B, si no hay ninguna, muestra "NULL"
__________________
|
#3
|
||||
|
||||
Por ahi andaria.
Ahora bien el problema que te esta dando seguramente es porque estas asignando esos valores luego de la consulta con el INTO. si sabes que puede devolver mas de 1 registro no puedes hacerlo asi. debes hacerlo por medio de un cursor. |
#4
|
||||
|
||||
Cita:
y me sigue dando el mismo error salvica |
#5
|
||||
|
||||
ya vi tu problema, el problema esta en la consulta anidada,
Porque?, porque esa subconsulta solo debe de devolver un valor y como lo estas haciendo te esta devolviendo en algunos casos varios valores, proba como te lo coloque yo. Saludos. |
#6
|
||||
|
||||
Cita:
Hola Kipow, he probado tu consulta y ebtengo el error La expresión de combinación no está admitida Pensé que era más fácil y no lo puse , utilizo ADO y según "Inner Join" no permite anidar "Left Join" en su interior |
#7
|
||||
|
||||
No edito el anterior porque se "descabala" todo
Es al revés un Left Join no admite anidar Inner Join en su interior |
#8
|
||||
|
||||
Según eso, lo he puesto así:
pero no me dá los inquilinos que no tienen propiedades alquiladas (posibles inquilinos a hacerles un contrato) ¿ideas? salvica |
#9
|
||||
|
||||
Creo que la solución es esta:
Cita:
Debes utilizar el LEFT JOIN, pues quieres todo lo que esté en la tabla de la izquierda de la relación, sin importar que haya o no datos en la tabla de la derecha de relación. Qudaría: Todos los Inquilinos. De estos todos sus contratos, si las hubiera. De estos todas sus propiedades, si las hubiera. Última edición por duilioisola fecha: 24-02-2009 a las 21:35:03. |
#10
|
||||
|
||||
Cita:
Por cierto, esto para qué era? Gracias a tod@s por la ayuda prestada Salvica |
#11
|
||||
|
||||
Cita:
El where es para hacer un filtro. Por lo que explicabas, pensé que querías un tipo determinado de propiedad. De todos modos, y ahora que lo pienso un poco mejor, si quisieras, por ejemplo solo garages, deberías poner algo así:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Subconsulta para escojer el ultimo de cada registro? | Carlex | SQL | 14 | 24-09-2018 21:50:32 |
Se puede saber quien me está bloqueando un registro? | diegolf | Conexión con bases de datos | 2 | 02-05-2007 16:56:08 |
Como obtener subconsulta con un valor maximo | alexander66 | MS SQL Server | 3 | 16-11-2006 03:38:20 |
¿Una tabla sólo puede estar unida externamente como máximo a otra tabla ? | febito | Oracle | 0 | 22-06-2004 18:12:16 |
IBSQL puede devolver un valor haciendo INSERT? | altp | SQL | 2 | 04-10-2003 22:09:49 |
|