select material_no,
count(case when roll_d>0 OR roll_d<=999 then material_no end) as count1,
sum(case when roll_d>0 OR roll_d<=999 then net_weight end) as weight1,
count(case when roll_d>=1000 OR roll_d<=1200 then material_no end) as count2,
sum(case when roll_d>=1000 OR roll_d<=1200 then net_weight end) as weight2
from Paper
group by material_no
[Quote=引用 5 楼 sdnzhqng 的回复:]
select material_no,count(case when roll_d>0 OR roll_d<=999 then material_no end) as count1,
sum(case when roll_d>0 OR roll_d<=999 then net_weight end) as weight1,
count(case when roll_d>=1000 OR……
[/Quote]
不好意思:
发错了,正确的如下
select material_no,count(case when roll_d>0 and roll_d<=999 then material_no end) as count1,
sum(case when roll_d>0 and roll_d<=999 then net_weight end) as weight1,
count(case when roll_d>=1000 and roll_d<=1200 then material_no end) as count1,
sum(case when roll_d>=1000 and roll_d<=1200 then net_weight end) as weight1
from Paper
group by material_no
select material_no,count(case when roll_d>0 OR roll_d<=999 then material_no end) as count1,
sum(case when roll_d>0 OR roll_d<=999 then net_weight end) as weight1,
count(case when roll_d>=1000 OR roll_d<=1200 then material_no end) as count1,
sum(case when roll_d>=1000 OR roll_d<=1200 then net_weight end) as weight1
from Paper
group by material_no
select material_no,isnull(b.数量,0)as ‘0-999数量’,isnull(b.重量 ,0)as ‘0-999重量’,...//c表的字段 from Paper a
left join(
select material_no,count(*) as 数量,sum(net_weight) as 重量
from Paper where roll_d >=0 and roll_d <=999
group by material_no
) b
on a.material_no=b.material_no
left join
(
select material_no,count(*) as 数量,sum(net_weight) as 重量
from Paper where roll_d >=1000 and roll_d <=1200
group by material_no
) c
on a.material_no=c.material_no
c表的字段 你自己写吧
你用子查询也可以实现,这个方法比较笨 等大侠给你更好的吧 呵呵