Concatenar múltiples valores de fila en 1 fila, con SQL para iSeries
Primero, tengo que agradecer a Kent Milligan y su artículo enhttp://www.mcpressonline.com/sql/techtip-combining-multiple-row-values-into-a-single-row-with-sql-in-db2-for-i.html por llevarme tan lejos en este problema como lo he hecho. Pero ahora necesito ampliar lo que ha hecho aquí.
Para evitar que tenga que ir a su artículo, el problema que abordó fue concatenar datos de cadena de varias filas en una sola fila en la tabla resultante. Por ejemplo:
Table Cars:
Haz un modeloFord FusionChevy TahoeHonda OdysseyFord TaurusFord FocusChevy MalibuResultados:
Haz un modeloChevy Malibu, TahoeFord Focus, Tauro, FusiónHonda OdysseyEsto se hizo con la instrucción SQL:
WITH numbered_sets(make, model, curr, prev) AS (
SELECT make, model,
ROW_NUMBER() OVER (PARTITION BY make ORDER BY model) AS curr,
ROW_NUMBER() OVER (PARTITION BY make ORDER BY model) -1 AS prev
FROM inventory)
SELECT make,
MAX (TRIM(L ',' FROM
CAST(SYS_CONNECT_BY_PATH(model, ',') AS VARCHAR(256)) ))
FROM numbered_sets
START WITH curr = 1
CONNECT BY make = PRIOR make AND prev = PRIOR curr
GROUP BY make
Pude adaptar eso a mi propia mesa y obtener la mayor parte del camino donde quería llegar. Pero para mis propósitos, tengo una columna adicional que necesito incluir para la agrupación. Por ejemplo:
Table Cars:
Hacer modelo de tipoFord Sedan FusionChevy SUV TahoeHonda Minivan OdysseyFord Sedan TaurusFord Sedan FocusChevy Sedan MalibuFord SUV EscapeFord SUV ExplorerChevy Sedan ImpalaPara los resultados, estaría buscando:
Hacer modelo de tipoChevy Sedan Malibu, ImpalaChevy SUV TahoeFord Sedan Fusion, Tauro, EnfoqueFord SUV Escape, ExplorerHonda Minivan Odyssey¿Alguien tiene alguna idea sobre todo lo que necesito agregar a la declaración original para poder agregar la columna TIPO y GRUPO sobre eso en consecuencia? He intentado algunas cosas, pero sospecho que necesito hacer algo con la declaración CONNECT_BY_PATH, pero no estoy seguro de qué.
Gracias