none
Mostrar resultado en una linea RRS feed

  • Pregunta

  • Buenos dias 

    amigos tengo el siguiente planteamiento

    tengo esta consulta

    select a.noalbaran, a.Impneto, a.Nocliente, a.codvendedor, pasilloubicacion
    from cabalbaran a
    inner join clientes c on c.nocliente = a.nocliente
    left join ubicaciones u on u.nocliente = a.nocliente
    where estadoAceptado=1 and estadoCobro =0 and estadoEtiquetado=0

    Que me arroja este resultado

    lo que necesito es que muestre una sola lienea

    pero en la columna pasilloubicacion concatene los dos resutados es decir que salga asi:

    x1-08-21  x1-08-22

    Es posible hacer eso

    Saludos


    ruben

    lunes, 1 de mayo de 2017 11:57

Respuestas

  • {...} Lo que necesito es que muestre una sola línea... que concatene los resultados 

    Una vez mas, por favor menciona siempre el gestor de base de datos que ocupas, éste es un foro de tecnologías Microsoft y es muy probable que obtengas respuestas basadas en sintaxis t-sql de SQL Server siendo que el gestor de base de datos que ocupas es MySql.

    Bien, una de las formas de afrontar la tarea en SQL Server es utilizando la función STUFF() con algo de XML, en versiones recientes (SQL SERVER 2017) se propone el uso de la función STRING_AGG(), sin embargo en MySql ya existe -con algo mas de anticipación- una función que resuelve el caso que expones: GROUP_CONCAT(expr).

    Si lees la documentación la consulta que deberías escribir es la siguiente: (has los cambios necesarios, no soy "fan" de MySql por tanto no tengo como corroborar la consulta que propongo)

    SELECT 
        a.noalbaran, a.Impneto, a.Nocliente, a.codvendedor,
        GROUP_CONCAT(DISTINCT pasilloubicacion ORDER BY pasilloubicacion SEPARATOR ' ')
    FROM 
        cabalbaran a
        INNER JOIN clientes c ON c.nocliente = a.nocliente
        LEFT JOIN ubicaciones u ON u.nocliente = a.nocliente
    WHERE 
        estadoAceptado = 1 AND estadoCobro = 0 AND estadoEtiquetado = 0
    GROUP BY
        a.noalbaran, a.Impneto, a.Nocliente, a.codvendedor;



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Ruben Lezcano lunes, 1 de mayo de 2017 14:12
    lunes, 1 de mayo de 2017 13:50

Todas las respuestas

  • {...} Lo que necesito es que muestre una sola línea... que concatene los resultados 

    Una vez mas, por favor menciona siempre el gestor de base de datos que ocupas, éste es un foro de tecnologías Microsoft y es muy probable que obtengas respuestas basadas en sintaxis t-sql de SQL Server siendo que el gestor de base de datos que ocupas es MySql.

    Bien, una de las formas de afrontar la tarea en SQL Server es utilizando la función STUFF() con algo de XML, en versiones recientes (SQL SERVER 2017) se propone el uso de la función STRING_AGG(), sin embargo en MySql ya existe -con algo mas de anticipación- una función que resuelve el caso que expones: GROUP_CONCAT(expr).

    Si lees la documentación la consulta que deberías escribir es la siguiente: (has los cambios necesarios, no soy "fan" de MySql por tanto no tengo como corroborar la consulta que propongo)

    SELECT 
        a.noalbaran, a.Impneto, a.Nocliente, a.codvendedor,
        GROUP_CONCAT(DISTINCT pasilloubicacion ORDER BY pasilloubicacion SEPARATOR ' ')
    FROM 
        cabalbaran a
        INNER JOIN clientes c ON c.nocliente = a.nocliente
        LEFT JOIN ubicaciones u ON u.nocliente = a.nocliente
    WHERE 
        estadoAceptado = 1 AND estadoCobro = 0 AND estadoEtiquetado = 0
    GROUP BY
        a.noalbaran, a.Impneto, a.Nocliente, a.codvendedor;



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Ruben Lezcano lunes, 1 de mayo de 2017 14:12
    lunes, 1 de mayo de 2017 13:50
  • Madre mia Willams eres GENIO, GRANDE

    Funciona Perfecto hace lo que necesito

    Grande Maestro

    saludos


    ruben

    lunes, 1 de mayo de 2017 14:12