分开统计的sql写法
DECLARE @StartDate DATETIME= '2017-10-13 00:00:00';
DECLARE @EndDate DATETIME= '2017-11-13 23:00:00';
DECLARE @Country NVARCHAR(20)= '中国香港';
DECLARE @到港单量 INT;
DECLARE @派送单量 INT;
DECLARE @妥投单量 INT;
DECLARE @累积在分拨仓单量 INT;
DECLARE @累积派送在途单量 INT;
DECLARE @累积未派送完成单量 INT;
DECLARE @自提已上架量 INT;
DECLARE @派送已签收量 INT;
DECLARE @派送异常单量 INT;
DECLARE @派送异常单量占比 VARCHAR(10);
SELECT @到港单量 = COUNT(DISTINCT a.TransportOrderID)
FROM dbo.TWX_TransportOrder a WITH ( NOLOCK )
LEFT JOIN dbo.Log_TransportOrderTrack b WITH ( NOLOCK ) ON a.TransportOrderID = b.TransportOrderID
WHERE a.country = @Country
AND a.InterDeliveryID = CAST(SUBSTRING('1[4PX]', 0, CHARINDEX('[', '1[4PX]')) AS INT)
AND b.TrackActionCode IN ( 'CAI_CUSTOMS_CLR_SUC', 'OTMS_SENT_CITY' )
AND b.TrackTime >= @StartDate
AND b.TrackTime <= @EndDate;
SELECT @派送单量 = COUNT(DISTINCT a.TransportOrderID)
FROM dbo.TWX_TransportOrder a WITH ( NOLOCK )
LEFT JOIN dbo.Log_TransportOrderTrack b WITH ( NOLOCK ) ON a.TransportOrderID = b.TransportOrderID
WHERE a.country = @Country
AND a.InterDeliveryID = CAST(SUBSTRING('1[4PX]', 0,CHARINDEX('[', '1[4PX]')) AS INT)
AND b.TrackActionCode IN ( 'GTMS_DELIVERING', 'SENT_SCAN',
'OTMS_DLV_ATTEMPT', 'GTMS_RE_DELIVERING',
'GTMS_DELIVERING' )
AND b.TrackTime >= @StartDate
AND b.TrackTime <= @EndDate;
SET @累积在分拨仓单量 = @到港单量 - @派送单量;
IF @累积在分拨仓单量 < 0
BEGIN
SET @累积在分拨仓单量 = 0;
END;
SELECT @派送异常单量 = COUNT(DISTINCT a.TransportOrderID)
FROM dbo.TWX_TransportOrder a WITH ( NOLOCK )
LEFT JOIN dbo.Log_TransportOrderTrack b WITH ( NOLOCK ) ON a.TransportOrderID = b.TransportOrderID
WHERE a.country = @Country
AND a.InterDeliveryID = CAST(SUBSTRING('1[4PX]', 0, CHARINDEX('[', '1[4PX]')) AS INT)
AND b.TrackActionCode IN ( 'CAI_SIGN_IN_FAIL', 'FAILED',
'GTMS_DEL_FAILURE' )
AND b.TrackTime >= @StartDate
AND b.TrackTime <= @EndDate;
SET @累积派送在途单量 = @派送单量 + @派送异常单量;
SET @累积未派送完成单量 = @累积在分拨仓单量 + @累积派送在途单量;
SELECT @派送已签收量 = COUNT(DISTINCT a.TransportOrderID)
FROM dbo.TWX_TransportOrder a WITH ( NOLOCK )
LEFT JOIN dbo.Log_TransportOrderTrack b WITH ( NOLOCK ) ON a.TransportOrderID = b.TransportOrderID
WHERE a.country = @Country
AND a.InterDeliveryID = CAST(SUBSTRING('1[4PX]', 0,CHARINDEX('[', '1[4PX]')) AS INT)
AND b.TrackCode IN ( 'GTMS_SIGNED', 'SIGNED', 'GSTA_SIGN', 'STATION_SIGNED' )
AND b.TrackTime >= @StartDate
AND b.TrackTime <= @EndDate;
SET @妥投单量 = @派送已签收量 + @累积派送在途单量;
IF ( @派送单量 = 0
AND @派送异常单量 = 0
)
BEGIN
SET @派送异常单量占比 = '0%';
END;
ELSE
BEGIN
SET @派送异常单量占比 = CAST(ROUND(( CONVERT(FLOAT, @派送异常单量)
/ CONVERT(FLOAT, @妥投单量) ) * 100, 2) AS VARCHAR(10))
+ '%';
END;
SELECT @StartDate '开始时间' ,
@EndDate '结束时间' ,
@Country '区域' ,
@到港单量 '到港单量' ,
@派送单量 '派送单量' ,
@累积在分拨仓单量 '累积在分拨仓单量' ,
@累积派送在途单量 '累积派送在途单量' ,
@累积未派送完成单量 '累积未派送完成单量' ,
@妥投单量 '妥投单量' ,
@派送异常单量 '派送异常单量' ,
@派送异常单量占比 '派送异常单量占比';
分开统计的sql写法的更多相关文章
- 查询分页的几种Sql写法
查询分页的几种Sql写法 摘自:http://www.cnblogs.com/zcttxs/archive/2012/04/01/2429151.html 1.创建测试环境,(插入100万条数据大概耗 ...
- --投资情况统计详情sql
--投资情况统计详情sqlselect BidRecord.*, RegInfo.UserName,UserInfo.phone,BorrowInfo.Title,BorrowInfo.BorrowC ...
- mysql统计类似SQL语句查询次数
mysql统计类似SQL语句查询次数 vc-mysql-sniffer 工具抓取的sql分析. 1.先用shell脚本把所有enter符号替换为null,再根据语句前后的字符分隔语句 grep -Ev ...
- MySQL查询不区分大小写的sql写法
MySQL查询不区分大小写的sql写法 mysql查询默认是不区分大小写的 如: select * from some_table where str=‘abc'; select * from som ...
- DB2、ORACLE SQL写法的主要区别
DB2.ORACLE SQL写法的主要区别 说实话,ORACLE把国内的程序员惯坏了,代码中的SQL充斥着大量ORACLE特性,几乎没人知道ANSI的标准SQL是什么样子,导致程序脱离了ORACL ...
- 字段自动递增的数据库建表的SQL写法
数据库建表的SQL写法如下: 数据库建表的SQL写法如下: create table dataC( a int identity(1,2) primary key, b varchar(20)) ...
- MySQL实现阶段累加的sql写法 ,eq:统计余额
最近项目碰到一个新的需求,统计每日充值/消费之后的余额.对于这种需求,其实也很简单,只需要在每次充值/消费后,计算下余额,然后保存下来就可以了.但是对于这种需求,一条sql就能搞定,都不需要做冗余字段 ...
- MySQL分段统计SQL写法 与 Mybatis 异常 java.math.BigDecimal cannot be cast to java.lang.Integer
mysql> select end) as '<60', end) as '60~69', end) as '70~79', end) as '80~89', end) as '>= ...
- ***常见复杂SQL语句(含统计类SQL)
1.SQL统计某字段的出现次数 比如统计某个表中,姓名出现的次数:select name,count(*) from biao group by name having count(*) > 2 ...
随机推荐
- Splay_Tree 模板(区间修改,旋转操作)
1.旋转操作 #define MAXN 100100 bool Add[MAXN];//延迟标记 struct Splay_Tree { int cnt, rt;//cnt为节点数,rt == roo ...
- RabbitMQ指南之三:发布/订阅模式(Publish/Subscribe)
在上一章中,我们创建了一个工作队列,工作队列模式的设想是每一条消息只会被转发给一个消费者.本章将会讲解完全不一样的场景: 我们会把一个消息转发给多个消费者,这种模式称之为发布-订阅模式. 为了阐述这个 ...
- 任务06——封装与单元测试(Markdown版)
模块代码地址 Core 模块代码地址 单元测试代码地址 两个地址是一样的,为了方便,所以把测试的代码很模块代码放在一起git了. 封装阶段 public class Core { public sta ...
- 如何查看l操作系统是否开启rpc服务
linux操作系统 在linux 5.X以及下的版本你可以通过service portmap status命令查看rpc是否启动.如果提示running,表示正在运行:如果提示stop就是关闭了.如果 ...
- Facebook背后的软件
Facebook的数据规模使得很多传统的解决方案根本不适用,或者无法分解来处理.保持一个拥有5亿用户的系统一直稳定可靠的运行,并不是一件很容易的事情.这篇文章介绍了一下Facebook使用的软件. F ...
- 内置函数:max 用法
内置函数——max Python max内置函数 max(iterable, *[, key, default]) max(arg1, arg2, *args[, key]) Return the l ...
- F-02 创建财务凭证BAPI
**.获取抬头参数, documentheader **.项目参数 accountgl = lt_acgl"G/L account item accountreceivable = lt_a ...
- 剑指offer 面试25题
面试25题:题目:合并两个排序的链表 题:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 解题思路:递归,并需注意对空链表单独处理. 解题代码: # -* ...
- linux shell 入门
本文是本人学习linux shell入门收集整理,不完全原创. 参考博文: http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html ...
- 顽石系列:Linux基础笔试
顽石系列:Linux基础笔试 系统操作 压缩文件 扩展名 压缩程序 *.Z compress *.zip zip *.gz gzip *.bz2 bzip2 *.xz xz *.tar tar 程序打 ...