【发布时间】:2012-08-13 15:40:10
【问题描述】:
我编写了一个 SQL 查询,用于填充临时表中的以下列:
CODE | MODULE | MONTH | YEAR | SO_NUM | LABOR_HRS | LABOR_COST
从这个表中,我需要创建一个返回相同数据的选择语句,按月份拆分,如下所示:
CODE | MODULE | SO_NUM_MONTH1 | LABOR_HRS_MONTH1 | LABOR_COST_MONTH1 | SO_NUM_MONTH2 | LABOR_HRS_MONTH2 | LABOR_COST_MONTH2 | etc...
如您所见,代码和模块不会随月份变化。临时表中总会有六个月的数据。然而,让我明白的是,月份并不总是从 1 开始(月份和年份都是整数)。
我还希望根据月份和年份来命名结果列,因此在上面的示例中,假设数据从 2011 年 1 月开始,名称可能是:
CODE | MODULE | SO_NUM_JAN_2011 | LABOR_HRS_JAN_2011 | LABOR_COST_JAN_2011 | SO_NUM_FEB_2011 | LABOR_HRS_FEB_2011 | LABOR_COST_FEB_2011 | etc...
此项目正在 SQL Server 2008 R2 中开发。
【问题讨论】:
-
你真的需要这样命名的列吗?或者你可以做类似“5 个月前”、“4 个月前”之类的内容吗?
标签: sql sql-server-2008 tsql reporting-services