No he visto una pregunta como esta, pero si hay alguna que haya sido respondida, por favor avíseme.Unir Múltiples Tablas Dinámicas Dinámicas
Tengo que crear una exportación, utilizando un procedimiento almacenado. Lamentablemente, en este momento, no es posible crear este informe en SSRS.
Lo que tengo que hacer es crear dinámicamente una tabla dinámica y unirla a otra, o eso es lo que pensé que funcionaría.
Los datos en bruto funciona de forma similar a esto (he cambiado los elementos a proteger los datos de mi empresa):
lo que quieren los datos para que parezca en el informe es la siguiente (para ahorrar espacio , No usé todas las fechas, pero puede obtener la idea):
He creado una tabla temporal y he creado dos tablas dinámicas dinámicas. Ambas tablas funcionarán por separado, pero una vez que uso UNION ALL, recibo un mensaje de error (lo agregaré a continuación). Incluyo el código que he usado para crear los dos pivotes. ¿Puede alguien decirme qué estoy haciendo mal?
¿Es posible hacer esto en un solo pivote?
/*
Use dynamic SQL to find all
Issue Dates for column headings
*/
DECLARE @Jquery VARCHAR(8000)
DECLARE @query VARCHAR(4000)
DECLARE @years VARCHAR(2000)
SELECT @years = STUFF((SELECT DISTINCT
'],[' + 'Item 1' + ' ' + (IssueDate)
FROM #GroupData GroupData
ORDER BY '],[' + 'Item 1' + ' ' + (IssueDate)
FOR XML PATH('')
), 1, 2, '') + ']'
SET @query =
'SELECT * FROM
(
SELECT LocationID, StoreName, StoreState AS State, "Item 1" + " " + (IssueDate) AS IssueDate, MoneyOrder
FROM #GroupData GroupData
) MoneyOrderIssued
PIVOT (MAX(MoneyOrder) FOR IssueDate
IN ('[email protected]+')) AS pvt'
DECLARE @queryMOUsed VARCHAR(4000)
DECLARE @MOUsedYear VARCHAR(2000)
SELECT @MOUsedYear = STUFF((SELECT DISTINCT
'],[' + 'Item 2' + ' ' + (IssueDate)
FROM #GroupData GroupData
ORDER BY '],[' + 'Item 2' + ' ' + (IssueDate)
FOR XML PATH('')
), 1, 2, '') + ']'
SET @queryMOUsed =
'SELECT * FROM
(
SELECT LocationID, StoreName, StoreState AS State, "Item 2" + " " + (IssueDate) AS IssueDate, MOUsed
FROM #GroupData GroupData
)SCRMoneyOrders
PIVOT (MAX(MOUsed) FOR IssueDate
IN ('[email protected]+')) AS pvt'
SET @Jquery = @query + ' UNION ALL ' + @queryMOUsed
EXECUTE (@query) -- Only in here to show that this works w/out UNION ALL
EXECUTE (@queryMOUsed) -- Only in here to show that this works w/out UNION ALL
EXECUTE (@Jquery)
El mensaje de error que recibo es el siguiente:
Aviso: valor nulo es eliminado por una operación SET agregado o. Msg 8114, nivel 16, estado 5, línea 1 Error al convertir el tipo de datos varchar a bigint.
Creo que tienes razón, Nate. Nuestro DBA acaba de señalar (como hace cinco minutos) que estoy tratando de juntar dos tipos diferentes de columnas. Ella no tenía la respuesta en este momento sobre cómo pivotar en los diversos elementos utilizando una combinación de fechas. ¿Alguna idea? – DataGirl
Acabo de actualizar. – NateMpls
Otra pregunta, ¿necesita que los elementos se generen dinámicamente? – NateMpls