zoukankan      html  css  js  c++  java
  • SQL 的坑1 除法“”不可用“”

    今天工作中遇见 一问题,有5各部分,现要求5个部分各自的比例,SQL语句没有问题,后来还试了“加”,“减”,“乘”,“Round”,结果都对,唯独“除法”得不到结果。

    之前的语句和结果

    select Date_1,
    	isnull(APP,0) as APP,
    	isnull(邮件,0)as YouJ,
    	isnull(微信,0) as WeiX,
    	isnull(微博,0) as WeiB,
    	isnull(电信渠道,0) as DXQD,
    	(isnull(APP,0)+isnull(邮件,0)+isnull(微信,0)+isnull(微博,0)+isnull(电信渠道,0))as total,
    
    	isnull(APP,0)+(isnull(APP,0)+isnull(邮件,0)+isnull(微信,0)+isnull(微博,0)+isnull(电信渠道,0)) as APP_Ratio_text,
    	ROUND(isnull(邮件,0)/(isnull(APP,0)+isnull(邮件,0)+isnull(微信,0)+isnull(微博,0)+isnull(电信渠道,0)),6) as YouJ_Ratio,
    	ROUND(isnull(微信,0)*(isnull(APP,0)+isnull(邮件,0)+isnull(微信,0)+isnull(微博,0)+isnull(电信渠道,0)),6) as WeiX_Ratio_test,
    	isnull(微博,0)/(isnull(APP,0)+isnull(邮件,0)+isnull(微信,0)+isnull(微博,0)+isnull(电信渠道,0)) as WeiB_Ratio,
    	isnull(电信渠道,0)/(isnull(APP,0)+isnull(邮件,0)+isnull(微信,0)+isnull(微博,0)+isnull(电信渠道,0)) as DXQD_Ratio
    	
    from(
    select convert(varchar(100),date_1,111) as Date_1,promotion_unit,sum(amount) as amount1
    from dbo.EDM_message_consume('2016/06/26','2016/06/27')
    where project_type is not null 
    group by promotion_unit,date_1) newtb
    pivot (sum(amount1)  for newtb.promotion_unit in (APP,邮件,微信,微博,电信渠道)) as pivottb
    

    后同事提醒试乘1.0,遂解决 如下

    select Date_1,
    	isnull(APP,0) as APP,
    	isnull(邮件,0)as YouJ,
    	isnull(微信,0) as WeiX,
    	isnull(微博,0) as WeiB,
    	isnull(电信渠道,0) as DXQD,
    	(isnull(APP,0)+isnull(邮件,0)+isnull(微信,0)+isnull(微博,0)+isnull(电信渠道,0))as total,
    
    	isnull(APP,0)*1.0/(isnull(APP,0)+isnull(邮件,0)+isnull(微信,0)+isnull(微博,0)+isnull(电信渠道,0)) as APP_Ratio,
    	isnull(邮件,0)*1.0/(isnull(APP,0)+isnull(邮件,0)+isnull(微信,0)+isnull(微博,0)+isnull(电信渠道,0)) as YouJ_Ratio,
    	isnull(微信,0)*1.0/(isnull(APP,0)+isnull(邮件,0)+isnull(微信,0)+isnull(微博,0)+isnull(电信渠道,0)) as WeiX_Ratio,
    	isnull(微博,0)*1.0/(isnull(APP,0)+isnull(邮件,0)+isnull(微信,0)+isnull(微博,0)+isnull(电信渠道,0)) as WeiB_Ratio,
    	isnull(电信渠道,0)*1.0/(isnull(APP,0)+isnull(邮件,0)+isnull(微信,0)+isnull(微博,0)+isnull(电信渠道,0)) as DXQD_Ratio
    	
    from(
    select convert(varchar(100),date_1,111) as Date_1,promotion_unit,sum(amount) as amount1
    from dbo.EDM_message_consume('2016/06/26','2016/06/27')
    where project_type is not null 
    group by promotion_unit,date_1) newtb
    pivot (sum(amount1)  for newtb.promotion_unit in (APP,邮件,微信,微博,电信渠道)) as pivottb
    

  • 相关阅读:
    js画线
    开源Math.NET基础数学类库使用(11)C#计算相关系数
    Cent OS5.2安装Hyper-V集成光盘
    解决oracle11g的ORA-12505问题
    Oracle11g安装出现em.ear
    Entity Framework Code First (八)迁移 Migrations
    Modernizr.js入门指南(HTML5&CSS3浏览器兼容插件)
    Waves:类Material Design 的圆形波浪(涟漪)点击特效插件
    多种css3时尚侧栏菜单展开显示效果Off-Canvas Menu Effects
    iOS 复选框风格转换 Switchery 开关效果
  • 原文地址:https://www.cnblogs.com/li-volleyball/p/5623814.html
Copyright © 2011-2022 走看看