Consulta relación 1 a N

08/11/2006 - 23:08 por Santiago Titon | Informe spam
Hola a todos, hace tiempo que estoy pensando este problema y no
encuentro si hay una solución. Tambien estuve buscando en el grupo,
pero no halle algo similar.
Tengo un sistema de administración para Municipios donde se registran
las Partidas (inmuebles) de una ciudad. Cada Partida tiene un
Nomenclador Catastral que la ubica (Ej: Sección, Chacra, Quinta,
Manzana, Lote,etc). Pero en distintas ciudades dicho nomenclador varia
en cantidad y nombre de los campos. Como el sistema es más bien
enlatado, la implementación está dada por las siguientes tablas:

Partidas: IdPartida, Metros2, Valuacion,

Nomenclador: IdNomen, Nombre (Guarda la config.que
cada ciudad requiere)

PartidaNomen: IdPartida, IdNomen, Valor (Guarda el valor para
cada partida/campo )


El problema: ¿ Cómo realizar una consulta que devuelva en una sola
línea los datos de la partida y sus valores catastrales ?

Ej.
IdPartida, Metros2, Valuacion, ..., Seccion, Chacra, Quinta, Lote,...
1, 200, 20000, ... , 1, 1, 2, 34, ...
2, 250, 25000, ... , 1, 2, 5, 46, ...
...
...


Desde ya muchas gracias!

Santiago Titon

Preguntas similare

Leer las respuestas

#6 Santiago Titon
09/11/2006 - 15:37 | Informe spam
Hola Javier,

tu respuesta está clara, pero el problema radica en que de una ciudad
a otra la cantidad de campos del nomenclador cambia, por lo tanto la
cantidad de INNER JOIN es variable.

Muchas Gracias !

Santiago
Respuesta Responder a este mensaje
#7 Alejandro Mesa
09/11/2006 - 15:42 | Informe spam
Javier,

Estoy posteando bajo tu mensaje solo para continuar la linea. Las columnas
no son unica para cada nomenclador, asi que tendriamos que pivotear un set
que contenga las distintas columnas que aparecen, pero esto tendra que
hacerse dinamicamente o usando una tabla intermedia donde se creen todas
estas columnas, se inserte una filas por partida y se actualizen las columnas
correspondiente a esta partida. Eso lo hariamos por cada partida.

Dynamic Cross-Tabs/Pivot Tables
http://www.sqlteam.com/item.asp?ItemID)55

Saludos a todos,

Alejandro Mesa

"Javier Loria" wrote:

Hola:
Si Salvador me permite:
==> SELECT IdPartida, Metros2, Valuacion, Seccion.Valor, Chacra.Valor,
Quinta.Valor
FROM Partidas
INNER JOIN PartidaNomen AS Seccion
ON Partidas.idPartida = Seccion.idPartida
AND IdNomen=1
INNER JOIN PartidaNomen AS Chacra
ON Partidas.idPartida = Chacra.idPartida
AND IdNomen=2
INNER JOIN PartidaNomen AS Quinta
ON Partidas.idPartida = Quinta.idPartida
AND IdNomen=3
.
==> Saludos,

Javier Loria
Costa Rica-MVP
Solid Quality Learning

"Santiago Titon" wrote in message
news:
> Hola Salvador,
>
> El problema es como hacer que devuelva todos los valores pero en una
> sola linea para cada Partida:
>
> Ej.
>
> Datos de Partida + Datos Catastrales variables segun Nomenclador
>
> IdPartida, Metros2, Valuacion, ..., Seccion, Chacra, Quinta, Lote,...
> 1, 200, 20000, ... , 1, 1, 2, 34, ...
> 2, 250, 25000, ... , 1, 2, 5, 46, ...
>
>
>
> Gracias !
>
> Santiago
>



Respuesta Responder a este mensaje
#8 Salvador Ramos
10/11/2006 - 17:21 | Informe spam
Perdón, no entendí bien.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Santiago Titon" escribió en el mensaje
news:
Hola Salvador,

El problema es como hacer que devuelva todos los valores pero en una
sola linea para cada Partida:

Ej.

Datos de Partida + Datos Catastrales variables segun Nomenclador

IdPartida, Metros2, Valuacion, ..., Seccion, Chacra, Quinta, Lote,...
1, 200, 20000, ... , 1, 1, 2, 34, ...
2, 250, 25000, ... , 1, 2, 5, 46, ...



Gracias !

Santiago

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida