SELECT
[BUDGET].[ID]
,[BUDGET].[BUDGETSUM]
,[BUDGET].[SURPLUSSUM]
,CASE WHEN [BUDGET].[BUDGETTYPE]=0 THEN '月度'
WHEN [BUDGET].[BUDGETTYPE]=1 THEN '季度'
WHEN [BUDGET].[BUDGETTYPE]=2 THEN '年度'
END BUDGETTYPE
,CASE WHEN [BUDGET].[CURRENCYTYPE]=0 THEN 'CNY'
WHEN [BUDGET].[CURRENCYTYPE]=1 THEN 'USD'
END CURRENCYTYPE
,[BUDGET_DETAILS].AMOUT
,CASE WHEN [BUDGET_DETAILS].SUM_CLASS_ID=1 THEN '簽呈金額'
WHEN [BUDGET_DETAILS].SUM_CLASS_ID=2 THEN '報銷金額'
WHEN [BUDGET_DETAILS].SUM_CLASS_ID=3 THEN '預支金額'
WHEN [BUDGET_DETAILS].SUM_CLASS_ID=4 THEN '請購金額'
WHEN [BUDGET_DETAILS].SUM_CLASS_ID=5 THEN '保留金額'
WHEN [BUDGET_DETAILS].SUM_CLASS_ID=6 THEN '沖帳金額'
END SUMCLASS
,SYS_DEPARTMENT.[NAME] DEPARTMENTNAME
,SUBITEM.[NAME] SUBITEMNAME
,COST.[NAME] COSTNAME
FROM [BUDGET],SYS_DEPARTMENT,SUBITEM,DEPARTMENTCOST,COST
,[BUDGET_DETAILS]
WHERE [BUDGET].ID=[BUDGET_DETAILS].BUDGET_ID
AND [BUDGET].[DEPARTMENT_ID]=SYS_DEPARTMENT.ID
AND [BUDGET].[SUBITEM_ID]=SUBITEM.ID
AND [BUDGET].[DEPARTMENT_ID]=DEPARTMENTCOST.DEPARTMENT_ID
AND DEPARTMENTCOST.COST_ID=COST.ID
執行以上SQL語句得到以下數據
------------------------------------------------------------------
ID BUDGETSUM SURPLUSSUM BUEGETTYPE CURRENCYTYPE AMOUT SUMCLASS DEPARTMENTNAME SUBITEMNAME COSTNAME
254 100.00 100.00 月度 CNY 0.00 簽呈金額 信息部 修理費 管理費用
255 1000.00 719.00 月度 CNY 100.00 請購金額 信息部 物料消耗 管理費用
255 1000.00 719.00 月度 CNY 60.00 請購金額 信息部 物料消耗 管理費用
255 1000.00 719.00 月度 CNY 70.00 請購金額 信息部 物料消耗 管理費用
255 1000.00 719.00 月度 CNY 36.00 請購金額 信息部 物料消耗 管理費用
---------------------------------------------------------------------
我現在要把SUMCLASS字段里的數據分組變成列,SUBITEMNAME字段分組MAX
(例如:簽呈金額 請購金額)
0.00 256.00
請問要SQL語句要怎么寫?
[BUDGET].[ID]
,[BUDGET].[BUDGETSUM]
,[BUDGET].[SURPLUSSUM]
,CASE WHEN [BUDGET].[BUDGETTYPE]=0 THEN '月度'
WHEN [BUDGET].[BUDGETTYPE]=1 THEN '季度'
WHEN [BUDGET].[BUDGETTYPE]=2 THEN '年度'
END BUDGETTYPE
,CASE WHEN [BUDGET].[CURRENCYTYPE]=0 THEN 'CNY'
WHEN [BUDGET].[CURRENCYTYPE]=1 THEN 'USD'
END CURRENCYTYPE
,[BUDGET_DETAILS].AMOUT
,CASE WHEN [BUDGET_DETAILS].SUM_CLASS_ID=1 THEN '簽呈金額'
WHEN [BUDGET_DETAILS].SUM_CLASS_ID=2 THEN '報銷金額'
WHEN [BUDGET_DETAILS].SUM_CLASS_ID=3 THEN '預支金額'
WHEN [BUDGET_DETAILS].SUM_CLASS_ID=4 THEN '請購金額'
WHEN [BUDGET_DETAILS].SUM_CLASS_ID=5 THEN '保留金額'
WHEN [BUDGET_DETAILS].SUM_CLASS_ID=6 THEN '沖帳金額'
END SUMCLASS
,SYS_DEPARTMENT.[NAME] DEPARTMENTNAME
,SUBITEM.[NAME] SUBITEMNAME
,COST.[NAME] COSTNAME
FROM [BUDGET],SYS_DEPARTMENT,SUBITEM,DEPARTMENTCOST,COST
,[BUDGET_DETAILS]
WHERE [BUDGET].ID=[BUDGET_DETAILS].BUDGET_ID
AND [BUDGET].[DEPARTMENT_ID]=SYS_DEPARTMENT.ID
AND [BUDGET].[SUBITEM_ID]=SUBITEM.ID
AND [BUDGET].[DEPARTMENT_ID]=DEPARTMENTCOST.DEPARTMENT_ID
AND DEPARTMENTCOST.COST_ID=COST.ID
執行以上SQL語句得到以下數據
------------------------------------------------------------------
ID BUDGETSUM SURPLUSSUM BUEGETTYPE CURRENCYTYPE AMOUT SUMCLASS DEPARTMENTNAME SUBITEMNAME COSTNAME
254 100.00 100.00 月度 CNY 0.00 簽呈金額 信息部 修理費 管理費用
255 1000.00 719.00 月度 CNY 100.00 請購金額 信息部 物料消耗 管理費用
255 1000.00 719.00 月度 CNY 60.00 請購金額 信息部 物料消耗 管理費用
255 1000.00 719.00 月度 CNY 70.00 請購金額 信息部 物料消耗 管理費用
255 1000.00 719.00 月度 CNY 36.00 請購金額 信息部 物料消耗 管理費用
---------------------------------------------------------------------
我現在要把SUMCLASS字段里的數據分組變成列,SUBITEMNAME字段分組MAX
(例如:簽呈金額 請購金額)
0.00 256.00
請問要SQL語句要怎么寫?
解决方案 »
- ASP.NET实现Flash新闻幻灯片效果
- 正则表达式云啊~~~~
- 一个奇怪的想法——页面上的输入项可以由管理员在后台修改
- 文本挖掘思路,请教高人!!!!!!!!!!!!!!!!!!!
- 如何将生成的整个Gridview赋给编辑器?
- asp.net换平台错误,请大家帮忙
- 复合控件中的<input type="file"...>在主控件引发的PostBack中如何得到该PostedFile?
- 200分求CSharpDevelop的源码
- 请教Web Application重起的问题(2)
- asp.net显示html代码问题,快疯了,各位高手进来指点一下,24在线等
- 用户维护内用到Gridview模板列处理,其中维护新用户的时候。。。。。。(具体疑问请看内容)
- 服务器动行window.open问题
[BUDGET].[ID]
,[BUDGET].[BUDGETSUM]
,[BUDGET].[SURPLUSSUM]
,CASE WHEN [BUDGET].[BUDGETTYPE]=0 THEN '月度'
WHEN [BUDGET].[BUDGETTYPE]=1 THEN '季度'
WHEN [BUDGET].[BUDGETTYPE]=2 THEN '年度'
END BUDGETTYPE
,CASE WHEN [BUDGET].[CURRENCYTYPE]=0 THEN 'CNY'
WHEN [BUDGET].[CURRENCYTYPE]=1 THEN 'USD'
END CURRENCYTYPE,sum(CASE WHEN [BUDGET_DETAILS].SUM_CLASS_ID=1 THEN [BUDGET_DETAILS]else 0) AS
['簽呈金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=2 THEN [BUDGET_DETAILS]' else 0 end) as ['報銷金額']
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=3 THEN [BUDGET_DETAILS] else 0 end) as ['預支金額']
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=4 THEN [BUDGET_DETAILS] else 0 end) as ['請購金額']
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=5 THEN [BUDGET_DETAILS] else 0 end) as'保留金額'
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=6 THEN [BUDGET_DETAILS] else 0 end) as ['沖帳金額']
,SYS_DEPARTMENT.[NAME] DEPARTMENTNAME
,SUBITEM.[NAME] SUBITEMNAME
,COST.[NAME] COSTNAME
FROM [BUDGET],SYS_DEPARTMENT,SUBITEM,DEPARTMENTCOST,COST
,[BUDGET_DETAILS]
WHERE [BUDGET].ID=[BUDGET_DETAILS].BUDGET_ID
AND [BUDGET].[DEPARTMENT_ID]=SYS_DEPARTMENT.ID
AND [BUDGET].[SUBITEM_ID]=SUBITEM.ID
AND [BUDGET].[DEPARTMENT_ID]=DEPARTMENTCOST.DEPARTMENT_ID
AND DEPARTMENTCOST.COST_ID=COST.ID
group by SUBITEMNAME;
SELECT
[BUDGET].[ID]
,[BUDGET].[BUDGETSUM]
,[BUDGET].[SURPLUSSUM]
,CASE WHEN [BUDGET].[BUDGETTYPE]=0 THEN '月度'
WHEN [BUDGET].[BUDGETTYPE]=1 THEN '季度'
WHEN [BUDGET].[BUDGETTYPE]=2 THEN '年度'
END BUDGETTYPE
,CASE WHEN [BUDGET].[CURRENCYTYPE]=0 THEN 'CNY'
WHEN [BUDGET].[CURRENCYTYPE]=1 THEN 'USD'
END CURRENCYTYPE,sum(CASE WHEN [BUDGET_DETAILS].SUM_CLASS_ID=1 THEN [BUDGET_DETAILS]else 0) AS
['簽呈金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=2 THEN [BUDGET_DETAILS]' else 0 end) as ['報銷金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=3 THEN [BUDGET_DETAILS] else 0 end) as ['預支金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=4 THEN [BUDGET_DETAILS] else 0 end) as ['請購金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=5 THEN [BUDGET_DETAILS] else 0 end) as ['保留金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=6 THEN [BUDGET_DETAILS] else 0 end) as ['沖帳金額'],
,SYS_DEPARTMENT.[NAME] DEPARTMENTNAME
,SUBITEM.[NAME] SUBITEMNAME
,COST.[NAME] COSTNAME
FROM [BUDGET],SYS_DEPARTMENT,SUBITEM,DEPARTMENTCOST,COST
,[BUDGET_DETAILS]
WHERE [BUDGET].ID=[BUDGET_DETAILS].BUDGET_ID
AND [BUDGET].[DEPARTMENT_ID]=SYS_DEPARTMENT.ID
AND [BUDGET].[SUBITEM_ID]=SUBITEM.ID
AND [BUDGET].[DEPARTMENT_ID]=DEPARTMENTCOST.DEPARTMENT_ID
AND DEPARTMENTCOST.COST_ID=COST.ID
group by SUBITEMNAME;
[BUDGET].[ID]
,[BUDGET].[BUDGETSUM]
,[BUDGET].[SURPLUSSUM]
,CASE WHEN [BUDGET].[BUDGETTYPE]=0 THEN '月度'
WHEN [BUDGET].[BUDGETTYPE]=1 THEN '季度'
WHEN [BUDGET].[BUDGETTYPE]=2 THEN '年度'
END BUDGETTYPE
,CASE WHEN [BUDGET].[CURRENCYTYPE]=0 THEN 'CNY'
WHEN [BUDGET].[CURRENCYTYPE]=1 THEN 'USD'
END CURRENCYTYPE,sum(CASE WHEN [BUDGET_DETAILS].SUM_CLASS_ID=1 THEN [BUDGET_DETAILS]else 0) AS
['簽呈金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=2 THEN [BUDGET_DETAILS]' else 0) as ['報銷金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=3 THEN [BUDGET_DETAILS] else 0) as ['預支金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=4 THEN [BUDGET_DETAILS] else 0) as ['請購金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=5 THEN [BUDGET_DETAILS] else 0) as ['保留金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=6 THEN [BUDGET_DETAILS] else 0) as ['沖帳金額'],
,SYS_DEPARTMENT.[NAME] DEPARTMENTNAME
,SUBITEM.[NAME] SUBITEMNAME
,COST.[NAME] COSTNAME
FROM [BUDGET],SYS_DEPARTMENT,SUBITEM,DEPARTMENTCOST,COST
,[BUDGET_DETAILS]
WHERE [BUDGET].ID=[BUDGET_DETAILS].BUDGET_ID
AND [BUDGET].[DEPARTMENT_ID]=SYS_DEPARTMENT.ID
AND [BUDGET].[SUBITEM_ID]=SUBITEM.ID
AND [BUDGET].[DEPARTMENT_ID]=DEPARTMENTCOST.DEPARTMENT_ID
AND DEPARTMENTCOST.COST_ID=COST.ID
group by SUBITEMNAME;
[BUDGET].[ID]
,[BUDGET].[BUDGETSUM]
,[BUDGET].[SURPLUSSUM]
,CASE WHEN [BUDGET].[BUDGETTYPE]=0 THEN '月度'
WHEN [BUDGET].[BUDGETTYPE]=1 THEN '季度'
WHEN [BUDGET].[BUDGETTYPE]=2 THEN '年度'
END BUDGETTYPE
,CASE WHEN [BUDGET].[CURRENCYTYPE]=0 THEN 'CNY'
WHEN [BUDGET].[CURRENCYTYPE]=1 THEN 'USD'
END CURRENCYTYPE,sum(CASE WHEN [BUDGET_DETAILS].SUM_CLASS_ID=1 THEN [BUDGET_DETAILS]else 0) AS
['簽呈金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=2 THEN [BUDGET_DETAILS]' else 0) As ['報銷金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=3 THEN [BUDGET_DETAILS] else 0) As ['預支金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=4 THEN [BUDGET_DETAILS] else 0) As ['請購金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=5 THEN [BUDGET_DETAILS] else 0) As ['保留金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=6 THEN [BUDGET_DETAILS] else 0) As ['沖帳金額'],
,SYS_DEPARTMENT.[NAME] DEPARTMENTNAME
,SUBITEM.[NAME] SUBITEMNAME
,COST.[NAME] COSTNAME
FROM [BUDGET],SYS_DEPARTMENT,SUBITEM,DEPARTMENTCOST,COST
,[BUDGET_DETAILS]
WHERE [BUDGET].ID=[BUDGET_DETAILS].BUDGET_ID
AND [BUDGET].[DEPARTMENT_ID]=SYS_DEPARTMENT.ID
AND [BUDGET].[SUBITEM_ID]=SUBITEM.ID
AND [BUDGET].[DEPARTMENT_ID]=DEPARTMENTCOST.DEPARTMENT_ID
AND DEPARTMENTCOST.COST_ID=COST.ID
group by SUBITEMNAME;
[BUDGET].[ID]
,[BUDGET].[BUDGETSUM]
,[BUDGET].[SURPLUSSUM]
,CASE WHEN [BUDGET].[BUDGETTYPE]=0 THEN '月度'
WHEN [BUDGET].[BUDGETTYPE]=1 THEN '季度'
WHEN [BUDGET].[BUDGETTYPE]=2 THEN '年度'
END BUDGETTYPE
,CASE WHEN [BUDGET].[CURRENCYTYPE]=0 THEN 'CNY'
WHEN [BUDGET].[CURRENCYTYPE]=1 THEN 'USD'
END CURRENCYTYPE,sum(CASE WHEN [BUDGET_DETAILS].SUM_CLASS_ID=1 THEN [BUDGET_DETAILS]else 0) AS
['簽呈金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=2 THEN [BUDGET_DETAILS]else 0) As ['報銷金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=3 THEN [BUDGET_DETAILS] else 0) As ['預支金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=4 THEN [BUDGET_DETAILS] else 0) As ['請購金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=5 THEN [BUDGET_DETAILS] else 0) As ['保留金額'],
sum(case WHEN [BUDGET_DETAILS].SUM_CLASS_ID=6 THEN [BUDGET_DETAILS] else 0) As ['沖帳金額'],
,SYS_DEPARTMENT.[NAME] DEPARTMENTNAME
,SUBITEM.[NAME] SUBITEMNAME
,COST.[NAME] COSTNAME
FROM [BUDGET],SYS_DEPARTMENT,SUBITEM,DEPARTMENTCOST,COST
,[BUDGET_DETAILS]
WHERE [BUDGET].ID=[BUDGET_DETAILS].BUDGET_ID
AND [BUDGET].[DEPARTMENT_ID]=SYS_DEPARTMENT.ID
AND [BUDGET].[SUBITEM_ID]=SUBITEM.ID
AND [BUDGET].[DEPARTMENT_ID]=DEPARTMENTCOST.DEPARTMENT_ID
AND DEPARTMENTCOST.COST_ID=COST.ID
group by SUBITEMNAME;
http://technet.microsoft.com/en-us/library/ms177410.aspx