我已经成功地为自己构建了一个漂亮的小 T-SQL 语句,它将调度信息转换为每月的列。
SELECT *
FROM
(
SELECT
t1.customer_code,
t1.part_number,
LEFT(DATENAME(month, [formatted_date]),3) as [Month],
t1.quantity as [quantity] FROM FORECAST_VIEW as t1
where
quantity <> 0
and formatted_date >= DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)
) as p
pivot
(
sum(quantity)
for [Month] in (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)
) as p
order by customer_code, part_number
Run Code Online (Sandbox Code Playgroud)
这会产生一个带有列的输出
customer_code, part_number, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
Run Code Online (Sandbox Code Playgroud)
并汇总每个月所需的 part_number 数量。
这工作正常并且在报告中产生奇迹,但是如果我可以让月份列从当前月份开始并按顺序排列 …