一个有难度的SQL问题,请各位帮助解决
/*
该问题一定要用纯sql代码实际spmcdca过程,我已经实现一部分,但是无法全部实现,
本人能力有限,望各人高手相助。
以下为调用spmcdca的代码,仅演示用的。
*/
create table #datas(
vcckbm varchar(10) null, --仓库编码
vcspbm varchar(20) null, --品种编码
vcfxfs1 varchar(20) null, --分析方式1
vcfxfs2 varchar(20) null, --分析方式2
fsl decimal(18, 2) null, --数量
fje decimal(18, 2) null --金额
)
/*以下这些insert into语句中的数据是动态插入的,
在实际的系统中肯定是某些业务表中的数据。
*/
insert into #datas(vcckbm, vcspbm, vcfxfs1, vcfxfs2, fsl, fje)
values (仓库一, 衬衣, 大号, 红衣, 100, 200)
insert into #datas(vcckbm, vcspbm, vcfxfs1, vcfxfs2, fsl, fje)
values (仓库一, 衬衣, 大号, 蓝色, 120, 987)
insert into #datas(vcckbm, vcspbm, vcfxfs1, vcfxfs2, fsl, fje)
values (仓库一, 衬衣, 中号, 白色, 10, 2000)
insert into #datas(vcckbm, vcspbm, vcfxfs1, vcfxfs2, fsl, fje)
values (仓库二, 西装, 大号, 蓝色, 11, 20000)
insert into #datas(vcckbm, vcspbm, vcfxfs1, vcfxfs2, fsl, fje)
values (仓库二, 西装, 中号, 黑色, 10, 12200)
select * from #datas
/**/
declare @presult int, @pdesttablename varchar(20)
select @pdesttablename=##daaa
exec spmcdca #datas, vcckbm,vcspbm,, vcfxfs1,vcfxfs2,, fsl,fje,, f,f, @presult output, @pdesttablename output
exec(select * from +@pdesttablename)
exec(drop table +@pdesttablename)
drop table #datas
/*至此,以上为调用的代码。*/
推荐阅读
--交叉数据报表:
create table 你的表(姓名 varchar(100),学历 varchar(100),部门 int)
insert 你的表 values(n1,aa,11)
insert 你的表 values(n2,bb,1)
insert 你的表 values(n3,aa,45)
insert 你的表 values(n4,cc,81)
insert 你的表 values(n5,a,11)
insert 你的表 values(n6,aay,561)
insert 你的表 values(n7,a,14)
declare @sql varchar(8000)
set @sql = select 部门
select @sql = @sql + ,sum(case 学历 when +学历+ then 1 else 0 end) [+学历+的人数]
from (select distinct 学历 from 你的表) a
select @sql =@sql+ from 你的表 group by 部门
exec(@sql)
drop table 你的表
表示关注。不是分的问题,而是交叉报表本身就很难的。
晕ing...
我也晕!
代码太长,没有是从头看到尾啊。你说一下你的思路吧。
没有办法,我不懂sql server,对不起了
是不是楼上的兄弟晕头了?歇会
.

讨论区