Hola estebanx
Complicado no es:
Es cuestion de enfocar el problema a lo que se necesita.
Quieres que te salga
solo una direccion X de una dtDirecciones.ID X, Bueno hay que pensar en cual de todas, la ultima, la primera, cual, alguna tiene que ser, verdad, la maquina no entiende cual quieres, entonces hay que decirselo.
Código SQL
[-]
SELECT DISTINCT Last(dbo.dtDirecciones.ID) AS dtDirecciones.ID, dbo.dtInstituciones.NombreLargo, dbo.dtInstituciones.NombreCorto, dbo.dtDirecciones.ID_institucion, dbo.dtDirecciones.Calle
FROM dbo.dtInstituciones INNER JOIN dbo.dtDirecciones ON dbo.dtInstituciones.ID = dbo.dtDirecciones.ID_Institucion
Bueno si esto no camina, tal vez con un group by:
Código SQL
[-]
SELECT DISTINCT Last(dbo.dtDirecciones.ID) AS dtDirecciones.ID, dbo.dtInstituciones.NombreLargo, dbo.dtInstituciones.NombreCorto, dbo.dtDirecciones.ID_institucion, dbo.dtDirecciones.Calle
FROM dbo.dtInstituciones INNER JOIN dbo.dtDirecciones ON dbo.dtInstituciones.ID = dbo.dtDirecciones.ID_Institucion
GROUP BY dbo.dtInstituciones.NombreLargo, dbo.dtInstituciones.NombreCorto, dbo.dtDirecciones.ID_institucion, dbo.dtDirecciones.Calle
Como veras aqui le digo que la ultima dtDirecciones.ID, como puede ser cualquier otro campo, el que se quiera o varios.
Saludos