;with t1 as(
select
(select cLvName from dbo.tCO_ItemLevel where LEFT('0907',4)=cLvID)中类名,
COUNT(distinct 商品编码)中类SKU数,
round(SUM(销售金额),2) 中类销售金额,
round((sum(销售金额)-sum(销售成本)),2) 中类毛利,
case SUM(销售金额) when 0 then 0 else round((sum(销售金额)-sum(销售成本))/SUM(销售金额),4) end 中类毛利率
from dbo.vAC_ItemDay_ZW1 a
where 日期 between '2012-05-21' and '2012-05-21' and 类别码 like '0907'+'%' and 销售金额<>0
), t2 as(
select
COUNT(distinct 商品编码)大类SKU数,
round(SUM(销售金额),2) 大类销售金额,
round((sum(销售金额)-sum(销售成本)),2) 大类毛利,
case SUM(销售金额) when 0 then 0 else round((sum(销售金额)-sum(销售成本))/SUM(销售金额),4) end 大类毛利率
from dbo.vAC_ItemDay_ZW1 a
where 日期 between '2012-05-21' and '2012-05-21' and 类别码 like '09'+'%' and 销售金额<>0
)select 中类名,
中类SKU数,
大类SKU数,
中类SKU数/大类SKU数 ,
case 大类销售金额 when 0 then 0 else round((中类销售金额/大类销售金额),4) end 中类销售比大类,
case 中类SKU数 when 0 then 0 else round((中类销售金额/中类SKU数),4) end 单品销售郊率,
中类毛利率,
case 大类毛利率 when 0 then 0 else round((中类毛利率/大类毛利率),4) end 中类毛利率比大类,
case 中类SKU数 when 0 then 0 else round((中类毛利/中类SKU数),4) end 单品毛利效率
from t1 ,t2
这个是我写的代码,不报错,除了 中类SKU数/大类SKU数 这个字段的值是0 但实际上 中类SKU数 = 81 大类SKU数=501 求高人指点
select
(select cLvName from dbo.tCO_ItemLevel where LEFT('0907',4)=cLvID)中类名,
COUNT(distinct 商品编码)中类SKU数,
round(SUM(销售金额),2) 中类销售金额,
round((sum(销售金额)-sum(销售成本)),2) 中类毛利,
case SUM(销售金额) when 0 then 0 else round((sum(销售金额)-sum(销售成本))/SUM(销售金额),4) end 中类毛利率
from dbo.vAC_ItemDay_ZW1 a
where 日期 between '2012-05-21' and '2012-05-21' and 类别码 like '0907'+'%' and 销售金额<>0
), t2 as(
select
COUNT(distinct 商品编码)大类SKU数,
round(SUM(销售金额),2) 大类销售金额,
round((sum(销售金额)-sum(销售成本)),2) 大类毛利,
case SUM(销售金额) when 0 then 0 else round((sum(销售金额)-sum(销售成本))/SUM(销售金额),4) end 大类毛利率
from dbo.vAC_ItemDay_ZW1 a
where 日期 between '2012-05-21' and '2012-05-21' and 类别码 like '09'+'%' and 销售金额<>0
)select 中类名,
中类SKU数,
大类SKU数,
中类SKU数/大类SKU数 ,
case 大类销售金额 when 0 then 0 else round((中类销售金额/大类销售金额),4) end 中类销售比大类,
case 中类SKU数 when 0 then 0 else round((中类销售金额/中类SKU数),4) end 单品销售郊率,
中类毛利率,
case 大类毛利率 when 0 then 0 else round((中类毛利率/大类毛利率),4) end 中类毛利率比大类,
case 中类SKU数 when 0 then 0 else round((中类毛利/中类SKU数),4) end 单品毛利效率
from t1 ,t2
这个是我写的代码,不报错,除了 中类SKU数/大类SKU数 这个字段的值是0 但实际上 中类SKU数 = 81 大类SKU数=501 求高人指点
解决方案 »
- 行中的列值相同时,只在第一行显示这个值,其它行不显示。
- SQL SERVER2000登陆时的一个问题
- 需求是Count 不能为负数,如果Count+@num 的值为负数,则设置为Count=0。 我该如何写判断?
- 基础问题,更改字段名和字段类型的sql应该如何写?
- windows7 64位有关数据源的问题,odbc里没有access驱动程序该怎么办呀
- sql模糊查询后怎么样排序使相同的和相似的依次靠前排
- 求一个SQL实现方式,100分送上
- 请教高手关于在存储过程里用了2个exec后在返回记录集的时候取值失败!
- sql server2005导入数据
- SQL SERVER 中如何取得数据备份与恢复时的当前处理进度?
- 我的bcp无法导入文件
- 求助:删除同一字段重复数据,并留下一条
改为
1.*中类SKU数/大类SKU数
如果要精确进行舍入则:
select cast(1.*中类SKU数/大类SKU数 as DEC(18,2))