Ver Mensaje Individual
  #16  
Antiguo 26-04-2007
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Reputación: 22
fjcg02 Va camino a la fama
Código SQL [-]
SELECT dbo.dtInstituciones.NombreLargo,  -- en el group by 
           dbo.dtInstituciones.NombreCorto,  -- en el group by
           first(dbo.dtDirecciones.ID), 
           first(dbo.dtDirecciones.ID_institucion), 
           first(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
Cuando quieres hacer algo similar, siempre tendrás que utilizar funciones de agrupación. En este caso, y como comentabais anteriormente, si una institución tiene 2 direcciones siempre saldrá dos veces. Para evitarlo, utiliza GROUP BY. Agrupas por los campos que quieres que sólo salgan una vez, el resto , función de grupo. En este caso yo he utilizado first, que muestra la primera que encuentra, podrías usar last, y si el campo es numérico first - primero, last - ultimo, sum- suma, average - media, min -minimo o max - maximo...

Ten en cuenta que cuando uses Group by cualquier campo que no tenga una función de las antes indicadas, seberá aparecer detrás del group by.

Espero haberte ayudado.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita