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. 企业实施DevOPS的七大挑战(转)

    从别人的演讲视频中摘抄,做笔记. 什么是DevOPS 如何衡量DevOPS 企业实施DevOPS的七大挑战 自动化测试投入不足 单元测试 API测试 界面测试 功能测试 高度集中的IT服务 标准化 脚 ...

  2. Java基础 - 获取随机数

    使用方法 package com.demo5; import java.util.Random; /* * 使用步骤: * A:导包 * import java.util.Random; * B:创建 ...

  3. CalendarUtil 日期操作工具类

    版权声明:本文为博主原创文章,未经博主允许不得转载. [java] view plain copy import java.util.Calendar; import java.text.DateFo ...

  4. Java的默认构造函数调用

    // 注意,这里不能是 public class OOO,否则编译无法通过,需把文件命名成 OOO.java class OOO { // 注意:如果不定义OOO(),那么Shapes(int i)编 ...

  5. 0x07 MySQL 多表查询

    Some Content From——Egon's Blog http://www.cnblogs.com/linhaifeng/articles/7126847.html 一 准备表 准备表 #建表 ...

  6. 修改impala表location

    两种方式: 一.通过修改表DDL: alter table t_m_cc set location 'hdfs://heracles/user/video-mvc/hive/warehouse/t_m ...

  7. spring下配置shiro

    1.web.xml中加入shiro的过滤器: <!-- Spring --> <!-- 配置Spring配置文件路径 --> <context-param> < ...

  8. F110 参数保存和重新运行录屏

    **初始界面回车 PERFORM frm_dynpro USING ' 'X'. PERFORM frm_dynpro USING '' 'BDC_CURSOR' 'F110V-LAUFD'. PER ...

  9. 2.4 使用ARDUINO控制MC20进行GPS数据的获取和解析

    需要准备的硬件 MC20开发板 1个 https://item.taobao.com/item.htm?id=562661881042 GSM/GPRS天线 1根 https://item.taoba ...

  10. django-admin 修改admin自带模版

    还不知道怎么指定修改每个页面,我就把把所有修改写在一个页面,通过url进行判断是否是是否显示修改内容,修改的是change_form.html ,在admin里面可以找到 {% block objec ...