首页 > 解决方案 > SQL Server 查询中的 SQL Pivot 交换值

问题描述

我有两个查询销售和预测,我将它们放在一个 UNION 中这两个查询此时显示正确。然后我旋转查询以显示每个 SKU,然后显示一个销售列,然后显示一个预测列,但似乎这些值出现在错误的列下。

下面是我的代码 - 是否有明显的原因导致它没有按预期输出?

SELECT q.FY#, q.[Country Code], q.Family, q.Colour, q.Pack_Size, Forecast, Actuals, Forecast/nullif(Actuals,0)  as Change
FROM (

SELECT FY#, [Country Code], Family, Colour, Pack_Size, Forecast, Actuals
FROM (

    SELECT f.FY#, f.Attribute, f.[Country Code], f.Family, f.Colour, f.Pack_Size, sum(f.Packs) as Packs
    FROM [V3.1_JDAForecast](@Country, @FY) f
    group by f.FY#, f.Attribute, f.[Country Code], f.Family, f.Colour, f.Pack_Size

    UNION

    SELECT a.FY#, a.Attribute, a.[Country Code], a.Family, a.Colour, a.Pack_Size, sum(a.Packs) as Packs
    FROM [V3.1_JDAActuals](@Country, @FY) as a
    group by a.FY#, a.Attribute, a.[Country Code], a.Family, a.Colour, a.Pack_Size

) src
PIVOT
(
    SUM(Packs)
    for Attribute in ([Actuals], [Forecast])
) piv
) q

标签: sql-serverpivot

解决方案


推荐阅读