none
Una nueva columna que repita el valor padre si los codigo hijo cumplen con una condicion. RRS feed

  • Pregunta

  • Buen dia,

    Tengo la siguiente consulta:

    select P.CCODIGOPRODUCTO, T0.*
    from estruc_producto T0
    left join admProductos P on P.CIDPRODUCTO = T0.idprodu01

    La cual me da el siguiente resultado:

    

    Por ejemplo, en el resultado los CCODIGOPRODUCTO padre son todos aquellos que tienen 0 en la columna padre y los codigos hijo son aquellos que en la columna producto tienen el mismo codigo de producto como en el ejemplo todos los que tienen el codigo 20940355.

    ¿Como puedo hacer para que en una nueva columna aparezca  el codigo padre de todos los productos hijo?

    De antemano, gracias por su ayuda.

    Saludos.

    martes, 12 de noviembre de 2019 16:29

Todas las respuestas

  • Hola Eduardo060888:

    Creo que deberías de normalizar esos datos, porque simplemente ese modelo no esta muy bien.

    Normalizar

    https://www.mundosql.eu/2019/07/20/normalizacion-de-tablas-relacionales-tercera-forma-normal-3fn/

    Voy a intentar aventurarme en lo que has preguntado, pero no se si te he entendido del todo.

    SELECT P.CCODIGOPRODUCTO 
    	 , P.ccodigoProducto 
         , T0.padre
         , T0.codigo
         , T0.producto
         , T0.idProdu01
         , T0.id_model
    FROM estruc_producto T0
         INNER JOIN admProductos P ON P.CIDPRODUCTO = T0.idprodu01
    	 WHERE PADRE = '0'
    UNION 
    SELECT P.CCODIGOPRODUCTO 
    	 , P1.ccodigoProducto AS HIJO
         , T1.padre
         , T1.codigo
         , T1.producto
         , T1.idProdu01
         , T1.id_model
    FROM estruc_producto T0
         INNER JOIN admProductos P ON P.CIDPRODUCTO = T0.idprodu01
    	 LEFT JOIN estruc_producto T1 ON T1.PADRE = T0.codigo 
    	 INNER JOIN admProductos P1 ON P1.CIDPRODUCTO = T1.idprodu01

    Espero te ayude.

    Aunque si no lo hace, quizá sería bueno que expusieses cuál es la salida esperada.

    martes, 12 de noviembre de 2019 20:42