Dada la siguiente estructura de tablas:
DROP TABLE #Personas
DROP TABLE #Direcciones
CREATE TABLE [#Personas] (
[IdPersona] [int] IDENTITY (1, 1) NOT NULL ,
[Nombre] [nvarchar] (50) NOT NULL ,
) ON [PRIMARY]
GO
CREATE TABLE [#Direcciones] (
[IdTipoDir] [int] NOT NULL , --1 primaria 2 secundaria
[IdPersona] [int] NOT NULL ,
[Direccion] [nvarchar] (50)
) ON [PRIMARY]
GO
INSERT #Personas (Nombre) VALUES ('Rodrigo') --Solo dirección primaria
INSERT #Direcciones (IdPersona, IdTipoDir, Direccion) VALUES (1, 1,
'Dirección primaria Rodrigo')
INSERT #Personas (Nombre) VALUES ('Javier') --Solo secundaria
INSERT #Direcciones (IdPersona, IdTipoDir, Direccion) VALUES (2, 2,
'Dirección secundaria Javier')
INSERT #Personas (Nombre) VALUES ('Antonio') --Primaria y secundaria
INSERT #Direcciones (IdPersona, IdTipoDir, Direccion) VALUES (3, 1,
'Dirección primaria Antonio')
INSERT #Direcciones (IdPersona, IdTipoDir, Direccion) VALUES (3, 2,
'Dirección secundaria Antonio')
Neceisto la select que me devuelva los datos de una persona y su dirección,
de manera que si una persona tiene dirección secundaria sea esta la que se
devuelva y si no tiene secundaria se devuelva la primaria. Para los datos
del ejemplo:
IdPersona Nombre IdTipoDir
IdPersona Direccion
-
1 Rodrigo 1
1 Dirección primaria Rodrigo
2 Javier 2
2 Dirección secundaria Javier
3 Antonio 2
3 Dirección secundaria Antonio
Gracias de antemano por su ayuda
Un saludo
Rodrigo Corral González
Leer las respuestas