把你那个存储过程的结果先插入一个临时表或者表也可以,然后再从表里SELECT就可以了啊
create table a................按照你的存储过程的结果的字段建立表
insert into a exec(@s)
select 项目,百分比=case when ...........再用行列转换,用实际/标准就可以了啊
create table a................按照你的存储过程的结果的字段建立表
insert into a exec(@s)
select 项目,百分比=case when ...........再用行列转换,用实际/标准就可以了啊
解决方案 »
- Transact-SQL 中一个简单的问题
- 求一sql语句
- 读一个文本文件.TXT,更新数据库的一个TEXT字段,SQL如何写
- 临时表用exec建不行吗?
- 你的小问题,我的大问题:关于触发器和存储过程?
- 关于LEFT JOIN,急急急!!!
- sql 2k 英文的 安装根中文不一样 一个地方不懂 集111 集111 集111 集111 集111
- sql server 有没有自动编号
- 一个小问题,希望大家多多帮忙。
- 在企业管理器数据库视图里,如何写弹出式对话框的SQL语句,可以根据用户输入的查询条件打开基于某个查询的窗体
- ~~~~~~~~~~~表名的位置可以用变量代替吗?
- execute后的事务计数指出缺少了commit或rollback transaction 语句。原计数=0,当前计数=1
都在干什么,很难帮你写.至少你先贴出你的@s来让大家看明白,你的程序在做什么吧?
表 erp_vwicbill_2
入库单号 生产车间 工段 入库日期 物料编码 单位 数量
cin0001 五金车间 开料 2006-11-01 0001 条 10
cin0001 五金车间 开料 2006-11-01 0002 条 20
cin0002 五金车间 开料 2006-11-02 0001 条 5
cin0002 五金车间 开料 2006-11-02 0001 条 10
表 t_icitemstandard
物料编码 标准工时
0001 0.1
0002 0.2
表 erp_workshoptime
日期 生产车间 工段 实际总工时
2006-11-01 五金车间 开料 6
2006-11-02 五金车间 开料 6我想得到的结果是(列是动态的,日期,生产车间,工段为变量)
日期 2006-11-01 2006-11-02
五金开料效率 83.3% 25%
Into #tmpShopTime
From erp_workshoptime
Where 1=0With
Tmp1 As
(
Select A* ,A数量*B.标准工时 As 总标准工时
From erp_vwicbill_2 As A Left Outer Join t_icitemstandard As b
On A.物料编码 = B.物料编码
)
Insert Into #tmpShopTime
Select 日期,生产车间,工段,实际总工时,000 As 标准总工时 From erp_workshoptime
Union All
Select 日期,生产车间,工段,000 As 实际总工时,Sum(总标准工时) As 标准总工时
From Tmp1
With Tmp2 As
(
Select 日期,生产车间,工段,Sum(实际总工时) As 实际总工时,Sum(标准总工时) As 标准总工时
From #tmpShopTime
Group By 日期,生产车间,工段
)
Select 日期,生产车间,工段,Cast((标准总工时*100.00/实际总工时) As VarChar(10))+'%' As 五金开料效率
Into #tmpResult
From Tmp2--根据你的要求来.这里应该可以使用以下:
--============================================
Select 日期,Cast((Sum(标准总工时)*100.00/Sum(实际总工时)) As VarChar(10))+'%' As 五金开料效率
Into #tmpResult
From Tmp2
Group By 日期
--============================================-- 现在交叉表
-- 若使用PIVOT 数据库的兼容级别必须设置为90,可使用使用sp_dbcmptlevel, 若使用Case 也可以完成.-- 此方面的例子网上不少,搜索交叉表在利用你的数据综合一下就得到你所要的结果了.-- 完成任务.删除相关表
Drop Table #tmpShopTime
Drop Table #tmpResult
当然你也可以在2000中,采用另外的一种方式:Insert Into #tmpShopTime
Select 日期,生产车间,工段,实际总工时,000 As 标准总工时 From erp_workshoptime
Union All
Select 日期,生产车间,工段,000 As 实际总工时,Sum(总标准工时) As 标准总工时
From
(
Select A* ,A数量*B.标准工时 As 总标准工时
From erp_vwicbill_2 As A Left Outer Join t_icitemstandard As b
On A.物料编码 = B.物料编码
) As Tmp1因此,当然是MSSQL ^_^