DECLARE @StartDate DATETIME= '2017-12-20 00:00:00';
DECLARE @EndDate DATETIME= '2017-12-26 00: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 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 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 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 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 '区域' ,
@到港单量 '到港单量' ,
@派送单量 '派送单量' ,
@累积在分拨仓单量 '累积在分拨仓单量' ,
@累积派送在途单量 '累积派送在途单量' ,
@累积未派送完成单量 '累积未派送完成单量' ,
@妥投单量 '妥投单量' ,
@派送异常单量 '派送异常单量' ,
@派送异常单量占比 '派送异常单量占比';

COUNT(DISTINCT a.TransportOrderID)的用法的更多相关文章

  1. Oracle-distinct()用法、count(distinct( 字段A || 字段B))是什么意思?distinct多个字段

    0.distinct用法 在oracle中distinct的使用主要是在查询中去除重复出现的数据 直接在字段前加distinct关键字即可,如:select distinct 名字 from tabl ...

  2. SQL COUNT DISTINCT 函数

    定义和用法 可以一同使用 DISTINCT 和 COUNT 关键词,来计算非重复结果的数目. 语法 SELECT COUNT(DISTINCT column(s)) FROM table 例子 注意: ...

  3. PostgreSQL的查询技巧: 零除, GENERATED STORED, COUNT DISTINCT, JOIN和数组LIKE

    零除的处理 用NULLIF(col, 0)可以避免复杂的WHEN...CASE判断, 例如 ROUND(COUNT(view_50.amount_in)::NUMERIC / NULLIF(COUNT ...

  4. 关于MySQL count(distinct) 逻辑的一个bug【转】

    本文来自:http://dinglin.iteye.com/blog/1976026#comments 背景 客户报告了一个count(distinct)语句返回结果错误,实际结果存在值,但是用cou ...

  5. 使用GROUP BY统计记录条数 COUNT(*) DISTINCT

    例如这样一个表,我想统计email和passwords都不相同的记录的条数 CREATE TABLE IF NOT EXISTS `test_users` ( `email_id` ) unsigne ...

  6. COUNT(*),count(1),COUNT(ALL expression),COUNT(DISTINCT expression)

    创建一个测试表 IF OBJECT_ID( 'dbo.T1' , 'U' )IS NOT NULL BEGIN DROP TABLE dbo.T1; END; GO )); GO INSERT INT ...

  7. SQL server 中 COUNT DISTINCT 函数

    目的:统计去重后表中所有项总和. 直观想法: SELECT COUNT(DISTINCT *) FROM [tablename] 结果是:语法错误. 事实上,我们可以一同使用 DISTINCT 和 C ...

  8. pandas pivot_table或者groupby实现sql 中的count distinct 功能

    pandas pivot_table或者groupby实现sql 中的count distinct 功能 import pandas as pd import numpy as np data = p ...

  9. COUNT DISTINCT ROW_NUMBER DENSE_RANK 以及对COUNT去重(非PARTITION)

    1:COUNT DISTINCT         SELECT          COUNT(DISTINCT [QS_QuestionStem].Id)  AS ReqCount1,         ...

随机推荐

  1. python学习【第七篇】python文件操作

    一.文件操作过程 1. 打开文件,得到文件句柄并赋值给一个变量2. 通过句柄对文件进行操作3. 关闭文件 # 1.打开文件,得到文件句柄 f_handle = open('aa.txt', 'r', ...

  2. 《从零开始学Swift》学习笔记(Day 7)——Swift 2.0中的print函数几种重载形式

    原创文章,欢迎转载.转载请注明:关东升的博客 Swift 2.0中的print函数有4种重载形式: l   print(_:).输出变量或常量到控制台,并且换行. l   print(_:_:).输出 ...

  3. 巨蟒python全栈开发linux之centos5

    1.nginx安装使用 2.nginx访问日志和压测命令 3.nginx反向代理配置 nginx的404页面 访问:淘宝官网的一个错误地址:http://taobao.com/eeeeeeee 淘宝的 ...

  4. iOS之事件的传递和响应机制

    前言: 按照时间顺序,事件的生命周期是这样的: 事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view.寻找最合适的view的底层实现.拦截事件的处理)->找到最合适的view后 ...

  5. django-websocket 安装及配置

    1.安装 dwebsocket (venv) C:\code_object\websocketTest>pip install dwebsocket -i https://pypi.douban ...

  6. java集合的部分接口

    接口 Collection<E> public interface Collection<E>extends Iterable<E> Collection 层次结构 ...

  7. Hibernate 框架入门(一)

    1. SSH Web 层: Struts2 业务层: Spring 持久层: Hibernate 2. Hibernate 概述 概述 Hibernate 是一个对象关系映射框架(ORM 框架); 对 ...

  8. Cassandra代替Redis?(转)

    原文:Cassandra代替Redis? 最近用Cassandra的又逐渐多了,除了之前的360案例,在月初的QCon Shanghai 2013 篱笆网也介绍了其使用案例.而这篇百万用户时尚分享网站 ...

  9. eclipse修改web项目部署路径 wtpwebapps webapps 的设置

    eclipse修改web项目部署路径 wtpwebapps   webapps  的设置,在添加完server------>tomcat后,到server控制台进行设置 eclipse默认的部署 ...

  10. VC:res协议——从模块中获取资源

    你可以从模块中获取一个资源.通过在文件名之前加上res://,你就可以引用一个嵌入在动态链接库资源文件中的HTML页面.