none
Cómo unir varios renglones de una tabla en uno solo RRS feed

  • Pregunta

  • Qué tal amigos

    Tengo una duda que espero puedan ayudarme a resolver, verán, tengo una tabla muy parecida a algo como esto:

    Lo que ocupo es que los valores que se encuentran en la columna Nota se puedan plasmar en un solo campo, algo como esto:

    Agradecería si pudieran sugerirme alguna forma de hacerlo.

    Pendiente de sus comentarios, saludos!

    martes, 23 de enero de 2018 17:35

Respuestas

  • tienes que hacer un subselect conjundo con algo que concatene como en este caso for XML path 

    declare @t table (codigo int, nota numeric(5,2),monto money)
    insert into @t values(1,2,500),(1,4,500),(1,3,400),(2,7,600),(2,6,600),(2,3,600)
    select 
    codigo,
    stuff((select ','+cast(nota as varchar) from @t t2 where t2.codigo=t.codigo for xml path('')),1,1,'') Notas,
    Max(monto) monto
    from @t t
    group by código


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    • Propuesto como respuesta Pablo RubioModerator martes, 23 de enero de 2018 18:50
    • Marcado como respuesta Zarpis miércoles, 24 de enero de 2018 18:31
    martes, 23 de enero de 2018 17:51
    Moderador

Todas las respuestas

  • tienes que hacer un subselect conjundo con algo que concatene como en este caso for XML path 

    declare @t table (codigo int, nota numeric(5,2),monto money)
    insert into @t values(1,2,500),(1,4,500),(1,3,400),(2,7,600),(2,6,600),(2,3,600)
    select 
    codigo,
    stuff((select ','+cast(nota as varchar) from @t t2 where t2.codigo=t.codigo for xml path('')),1,1,'') Notas,
    Max(monto) monto
    from @t t
    group by código


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    • Propuesto como respuesta Pablo RubioModerator martes, 23 de enero de 2018 18:50
    • Marcado como respuesta Zarpis miércoles, 24 de enero de 2018 18:31
    martes, 23 de enero de 2018 17:51
    Moderador
  • Gracias por tu respuesta, pero disculpa, nunca he usado ese tipo de consultas. Es necesario crear la tabla cada que vaya a ejecutar la consulta? En mi caso la tabla que puse es solo un ejemplo pero no sé cuantos y qué registros vaya a tener exactamente.

    martes, 23 de enero de 2018 19:16
  • Con el permiso de PABLO RUBIO

    El ejemplo que te pusieron es solo eso, UN EJEMPLO, tu tendras tu tabla y los registros que sean, deberas probar el query, si te funciona, que bien, si no, vienes y nos comentas.

    martes, 23 de enero de 2018 23:36
  • Como bien te han comentado los compañeros, obviamente no, sustituye @t por el nombre de tu tabla y listo

    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    miércoles, 24 de enero de 2018 7:31
    Moderador
  • Me ha quedado claro :) agradezco mucho el apoyo. La consulta funciona.

    Saludos!


    • Editado Zarpis miércoles, 24 de enero de 2018 22:30
    miércoles, 24 de enero de 2018 18:31