Ver Mensaje Individual
  #6 (permalink)  
Antiguo 15/02/2008, 16:20
Avatar de Beakdan
Beakdan
 
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Re: Ayuda para una consulta sql

En este post iislas publicó una solución con SQL Server 2000. Basicamente se trata de crear una función que concatene la columna que te interesa de todas las filas en una sola cadena, y llamar a dicha función en el juego de resultados. SQL Server 2005 tiene facilidades para realizar esto sin crear la función.
En access se tiene que usar el mismo enfoque que con SQL server 2000. Primero hay que crear la función:
Código:
Public Function ConcatRows(Query As String, Optional Separador As String = ",") As String
    Dim rs As DAO.Recordset
    Dim result As String
    
    Set rs = CurrentDb().OpenRecordset(Query, dbOpenForwardOnly)
    
    Do While Not rs.EOF
        result = result & rs.Fields(0).Value & Separador
        rs.MoveNext
    Loop
    
    result = Left(result, Len(result) - Len(Separador))
    
    ConcatRows = result
End Function
Y ahora puedes llamar a la función de esta manera:
Código:
SELECT    NombreP,
        ConcatRows("SELECT NombreH FROM TablaHijo WHERE Id_Padre = " & Id_Padre) AS NombresH
FROM    TablaPadre;

Última edición por Beakdan; 16/02/2008 a las 12:29