Tengo una consulta en la que estoy tratando de valores de la fila pivote en nombres de columna y actualmente estoy usando SUM(Case...) As 'ColumnName'
declaraciones, así:SQL dinámico para generar nombres de columna?
SELECT
SKU1,
SUM(Case When Sku2=157 Then Quantity Else 0 End) As '157',
SUM(Case When Sku2=158 Then Quantity Else 0 End) As '158',
SUM(Case When Sku2=167 Then Quantity Else 0 End) As '167'
FROM
OrderDetailDeliveryReview
Group By
OrderShipToID,
DeliveryDate,
SKU1
La consulta anterior funciona muy bien y me da exactamente lo que necesito. Sin embargo, estoy escribiendo un vistazo a las declaraciones de SUM(Case...
mano sobre la base de los resultados de la consulta siguiente:
Select Distinct Sku2 From OrderDetailDeliveryReview
¿Hay alguna manera, el uso de T-SQL dentro de un procedimiento almacenado, que pueda generar dinámicamente las declaraciones SUM(Case...
de la consulta Select Distinct Sku2 From OrderDetailDeliveryReview
y luego ejecuta el código SQL resultante?
Gracias por su respuesta. He visto muchas respuestas que usan 'COALESCE', pero ¿qué está haciendo exactamente esa función? –
Además, si trato de ejecutar su consulta tal como está, aparece un error en la línea 15: "Sintaxis incorrecta cerca de la palabra clave 'FROM'." Si elimino la coma al final de la línea 14, aparece un mensaje de error en * línea 3 * que dice "Sintaxis incorrecta cerca de 'SUM'" ¿Alguna idea sobre qué está pasando aquí o cómo depurar esto? –
@Cade Roux Ok, modifiqué el código (coloque la coma entre las comillas al final de la línea 14, agregué una línea para recortar la coma de @column_list).Ahora funciona, lo cual es genial, pero no puedo entender lo que está pasando entre las líneas 14 y 17. –