Declaración recursiva con división del valor de la columna
Tengo una tabla llamada “srt_shipped_tools” con algunas columnas como se muestra en la imagen mencionada a continuación:
Tomemos la primera fila de la tabla anterior. Vemos la columna Partpath, en la columna Partpath tenemos múltiples ids separados por “/” el último valor separado (0010-36299) es hijo de (0010-81717) y el valor (0010-81717) es hijo de (0241-07133) y así sucesivamente.
Resultado esperado: el valor de Partpath debe separarse con “/” y el resultado debe ser como la imagen adjunta.
Intenté una expresión CTE utilizando recursión, pero no está funcionando para mí.
Intenté con la siguiente consulta utilizando la técnica de recursión, pero no está funcionando como se esperaba.
;WITH Numbers AS (
SELECT Partpath, partno, parentpartno, slot_num, consumptionenditem, plant
FROM srt_shipped_tools
WHERE slot_num = '901013' and PARTNO = '0015-08223'
UNION ALL
SELECT a.Partpath, a.partno, a.parentpartno, a.slot_num, a.consumptionenditem, a.plant
FROM srt_shipped_tools a
INNER JOIN Numbers b on a.slot_num = b.slot_num and a.plant = b.plant and a.consumptionenditem = b.consumptionenditem and a.parentpartno = b.partno
WHERE a.slot_num = '901013' and a.PARTNO = '0015-08223'
)
SELECT *
FROM Numbers
WHERE slot_num = '901013' and PARTNO = '0015-08223'
davy.ai
Para lograr el resultado esperado, necesitamos utilizar una CTE (Expresión Común de Tabla) recursiva. Aquí hay un ejemplo de consulta que debería funcionar:
Esta consulta debería devolver una sola fila con los valores de la ruta de la parte divididos en columnas separadas, como se muestra en la imagen de salida esperada. Ten en cuenta que deberás modificar la cláusula WHERE para que coincida con el valor específico de la ruta de la parte que deseas consultar.