日期:2014-05-18 浏览次数:20479 次
declare @t table (单号 varchar(4),品名 varchar(5),长度 int,宽度 int,数量 int,有无边 varchar(4)) insert into @t select 'A001','甲A级',1200,815,20,'有' union all select 'A001','甲A级',1200,958,10,'有' union all select 'A001','甲B级',1300,1150,30,'三边' union all select 'A002','乙T级',1100,650,10,'-' union all select 'A002','乙T级',1100,1250,15,'' select 单号 , 品名 =case when 有无边='-' or 有无边='' then '普通' else '装饰' end +right(品名,2), 长宽数量积=sum(case when 长度*宽度<1000000 then 1.00 else cast(长度*宽度/1000000.00 as decimal(18,2)) end) from @t group by 单号 , right(品名,2), case when 有无边='-' or 有无边='' then '普通' else '装饰' end /* 单号 品名 长宽数量积 ---- -------- --------------------------------------- A001 装饰A级 2.15 A001 装饰B级 1.50 A002 普通T级 2.38 */
------解决方案--------------------