急.........!请高手帮我!
这样的一个表:数据如下:(表A)
WorkshopNO Category InfoName Year Qutarter Unit Amount
1 间接成本 低级技工薪水工资 2004 1 $ 69582.62
1 间接成本 低级技工薪水工资 2004 2 $ 47679.10
1 间接成本 低级技工薪水工资 2004 3 $ 46582.34
1 间接成本 低级技工薪水工资 2004 4 $ 61066.26
1 间接成本 监督人员薪水工资 2004 1 $ 30388.74
1 间接成本 监督人员薪水工资 2004 2 $ 30388.74
1 间接成本 监督人员薪水工资 2004 3 $ 30388.74
1 间接成本 监督人员薪水工资 2004 4 $ 30388.74
用什么方法能得到这样的显示结果:(表B)
WorkshopNO Qutarter1 Qutarter2 Qutarter3 Qutarter4 Unit
1 69582.62 47679.10 46582.34 46582.34 $
1 30388.74 30388.74 30388.74 30388.74 $
也就是说把表A中的四个秀度在表B中分列显示?会的请答复,谢谢
问题点数:40、回复次数:5Top
1 楼xeqtr1982(Visual C# .NET)回复于 2006-05-04 12:40:20 得分 0
create table tb(WorkshopNO int,Category varchar(20),InfoName varchar(20),[Year] int,Qutarter int,Unit varchar(10),Amount dec(18,2))
insert into tb select 1,'间接成本','低级技工薪水工资',2004,1,'$',69582.62
union all select 1,'间接成本','低级技工薪水工资' ,2004,2,'$',47679.10
union all select 1,'间接成本','低级技工薪水工资' ,2004,3,'$',46582.34
union all select 1,'间接成本','低级技工薪水工资' ,2004,4,'$',61066.26
union all select 1,'间接成本','监督人员薪水工资' ,2004,1,'$',30388.74
union all select 1,'间接成本','监督人员薪水工资' ,2004,2,'$',30388.74
union all select 1,'间接成本','监督人员薪水工资' ,2004,3,'$',30388.74
union all select 1,'间接成本','监督人员薪水工资' ,2004,4,'$',30388.74
select [WorkshopNO],
[Qutarter1]=sum(case Qutarter when 1 then Amount else 0 end),
[Qutarter2]=sum(case Qutarter when 2 then Amount else 0 end),
[Qutarter3]=sum(case Qutarter when 3 then Amount else 0 end),
[Qutarter4]=sum(case Qutarter when 4 then Amount else 0 end),
[Unit]
from tb
group by [InfoName],[WorkshopNO],[Unit]
drop table tb
Top
2 楼lijun2000(德国)回复于 2006-05-04 12:44:53 得分 0
你给的只能处理8条数据,但超过了怎么办才好?Top
3 楼yanglszt(YangLing)回复于 2006-05-04 12:46:44 得分 0
select WorkShopNo,
case when Qutarter=1 then Amount end as Qutarter1,
case when Qutarter=2 then Amount end as Qutarter2,
case when Qutarter=3 then Amount end as Qutarter3,
case when Qutarter=4 then Amount end as Qutarter4,
Unit,InfoName
from 表A
group by WorkShopNo,Unit,InfoName
order by WorkShopNoTop
4 楼xeqtr1982(Visual C# .NET)回复于 2006-05-04 12:47:30 得分 0
create table tb(WorkshopNO int,Category varchar(20),InfoName varchar(20),[Year] int,Qutarter int,Unit varchar(10),Amount dec(18,2))
insert into tb select 1,'间接成本','低级技工薪水工资',2004,1,'$',69582.62
union all select 1,'间接成本','低级技工薪水工资' ,2004,2,'$',47679.10
union all select 1,'间接成本','低级技工薪水工资' ,2004,3,'$',46582.34
union all select 1,'间接成本','低级技工薪水工资' ,2004,4,'$',61066.26
union all select 1,'间接成本','监督人员薪水工资' ,2004,1,'$',30388.74
union all select 1,'间接成本','监督人员薪水工资' ,2004,2,'$',30388.74
union all select 1,'间接成本','监督人员薪水工资' ,2004,3,'$',30388.74
union all select 1,'间接成本','监督人员薪水工资' ,2004,4,'$',30388.74
select [WorkshopNO],
[Qutarter1]=sum(case Qutarter when 1 then Amount else 0 end),
[Qutarter2]=sum(case Qutarter when 2 then Amount else 0 end),
[Qutarter3]=sum(case Qutarter when 3 then Amount else 0 end),
[Qutarter4]=sum(case Qutarter when 4 then Amount else 0 end),
[Unit]
from tb
group by [WorkshopNO],[InfoName],[Unit]
drop table tbTop
5 楼xeqtr1982(Visual C# .NET)回复于 2006-05-04 12:47:57 得分 40
select [WorkshopNO],
[Qutarter1]=sum(case Qutarter when 1 then Amount else 0 end),
[Qutarter2]=sum(case Qutarter when 2 then Amount else 0 end),
[Qutarter3]=sum(case Qutarter when 3 then Amount else 0 end),
[Qutarter4]=sum(case Qutarter when 4 then Amount else 0 end),
[Unit]
from tb
group by [WorkshopNO],[InfoName],[Unit]
--上面的是测试用的,你用这条就可以了Top




