Select complicada
Primero disculparme por el título del hilo; no se me ocurre otra forma.
Veamos. Para mi se me hace complicado como hacer este select. Tengo dos tablas relacionadas: una de personas y otra de cargos. Cada entrada de esta última ha de estar necesariamente en la de personas pero cada persona puede tener más de una entrada en la tabla de cargos. A la izquiera la tabla de personas; a la derecha la de electos. Si yo hago un select para sacar, por ejemplo, la identidad y el cargo lo haría así: Código:
SELECT A.Apellidos, A.Nombre, C.Cargo |
|
Entiendo que de la tabla ELECTOS quieres saber:
- el nombre y aplellido que están en la tabla PERSONA - un Cargo que está en la tabla CARGOS Una persona puede tener muchos Cargos El campo Codigo relaciona Persona con Cargos No me queda claro que el campo Cargo de ELECTOS se relaciones con el campo Codigo de CARGOS. Creo que debería ser Cargo de ELECTOS
De todos modos, creo que hay que agregar la relación entre codigo Y cargo de ambas tablas. Supongo que la tabla ELECTOS tiene tanto el código de la persona como el cargo al que ha sido electo.
|
Después de poner el mensaje me he dado cuenta que he liado el ejemplo. Lo importante son las dos tablas de las imágenes; la tercera (Cargos) es para extraer la descripción asociada al campo Cargo en la segunda imagen.
Centrándome en las dos imágenes que he subido (Persona es la de la izquierda y Electos la de la derecha). Si uso un query parecido al que he puesto antes:
Saldría algo así: Cita:
Cita:
Cita:
|
Hola.
Cita:
tenemos: Código:
CODIGO APELLIDO NOMBRE CARGO Lo que no termino de entender es a que te refieres con que "salen todos los posibles", ¿ Que criterio más se debería cumplir ? Saludos :) |
Para esto tienes que hacer entonces un subselect:
|
En Firebird puedes utilizar tambié LIST() para estos campos agregados:
|
Cita:
Yo me iba a decantar por hablar seriamente con el presidente y hacerle ver que no es admisible que haya electos que acumulen más de un cargo :D |
Cita:
|
Cita:
Cita:
Cita:
|
Estimados amigos, mi ánimo no es incomodar sino de sugerir.
Le recomiendo leer la documentación que trae consigo Firebird, especialmente la contenida en c:\Program Files\Firebird\Firebird_2_5\doc\sql.extensions\. Existe bastante información que nos permite dar una mirada distinta a las problematicas que afrontamos a diario en el desarrollo de nuestros sistemas. Es cierto que en ocasiones el tiempo es escaso, pero de igual manera hay que hacer el esfuerzo. En mi caso personal, en esta documentación he descubierto información que como dijo el estimado amigo Cita:
Un caluroso abrazo |
Hola.
Voy a sumar un enlace a la interesante sugerencia del amigo cloayza: The Firebird FAQ. Saludos :) Edito: Casi lo olvido... y también : Reference Manuals |
La franja horaria es GMT +2. Ahora son las 06:29:07. |
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