`
taiwei.peng
  • 浏览: 228709 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

临时取数脚本

阅读更多
--01 删除表中的现有数据
TRUNCATE TABLE TEMP_WAYBILL_CYX;
--02将附件中的运单号拷贝到TEMP_WAYBILL_CYX 表中
--03 插入过度表值
DECLARE
  A DATE := DATE '2016-02-26';
  B DATE := DATE '2016-02-26';
  C DATE := DATE '2016-02-26';
  D DATE := DATE '2016-02-27';
BEGIN
  EXECUTE IMMEDIATE 'TRUNCATE TABLE TEMP_SRCZONECODE_CYX';
  FOR Q IN 1 .. 15 LOOP
    INSERT INTO TEMP_SRCZONECODE_CYX
      (WAYBILL_NO, SRC_ZONE_CODE, DEST_ZONE_CODE)
      SELECT /*+ PARALLEL(T,5) */
       T.WAYBILL_NO, T.SRC_ZONE_CODE, T.DEST_ZONE_CODE
        FROM TT_WAYBILL_INFO T
       WHERE EXISTS
       (SELECT 1 FROM TEMP_WAYBILL_CYX WHERE WAYBILL_NO = T.WAYBILL_NO)
         AND T.REPORT_DT = A;
    COMMIT;
    A := A + 1;
  END LOOP;

  EXECUTE IMMEDIATE 'TRUNCATE TABLE TEMP_RESULT_CYX';
  FOR Q IN 1 .. 15 LOOP
    INSERT INTO TEMP_RESULT_CYX
      (WAYBILL_NO,
       SRC_ZONE_CODE,
       DEST_ZONE_CODE,
       ROUTE_INDEX,
       BATCH_TYPE,
       S_ZONE_CODE,
       S_BATCH_CODE,
       S_OPT_TM,
       S_DELIVERY_TM,
       D_ZONE_CODE,
       D_BATCH_CODE,
       D_OPT_TM,
       D_DELIVERY_TM,
       D_S_OPT,
       D_S_DIFF,
       D_VEHICLE_NO,
       VEHICLE_AREA,
       D_BAR_OPT_CODE,
       STAY_WHY_NAME,
       EXCEPTION_STATUS,
       DUTY_STATUS)
      SELECT /*+ INDEX(IPK_WAYBILL_ROUTE_INFO) parallel(DT,5)*/
             DT.WAYBILL_NO AS 运单号,
             C.SRC_ZONE_CODE AS 始发网点,
             C.DEST_ZONE_CODE AS 目的网点,
             DT.ROUTE_INDEX AS 路由序号,
             (CASE DT.D_BATCH_TYPE
               WHEN 1 THEN
                '收件班次'
               WHEN 2 THEN
                '收件仓库班次'
               WHEN 3 THEN
                '中转班次'
               WHEN 4 THEN
                '运输班次'
               WHEN 5 THEN
                '派件仓库班次'
               WHEN 6 THEN
                '派件班次'
               ELSE
                ''
             END) AS 班次类型,
             DT.S_ZONE_CODE AS 静态网点,
             DT.S_BATCH_CODE AS 静态班次,
             DT.S_OPT_TM AS 静态操作时间,
             DT.S_DELIVERY_TM AS 静态派送时效,
             DT.D_ZONE_CODE AS 实际网点,
             DT.D_BATCH_BATCH_CODE AS 实际班次,
             DT.D_OPT_TM AS 动态操作时间,
             DT.D_DELIVERY_TM AS 动态派送时效,
             NVL(ROUND(TO_NUMBER(DT.D_OPT_TM - DT.S_OPT_TM) * 1440), 0) || 'm' AS 时差,
             NVL(ROUND(TO_NUMBER(DT.S_DELIVERY_TM - DT.D_DELIVERY_TM) * 1440),
                 0) || 'm' AS 时效差值,
             DT.D_VEHICLE_NO AS 车标号,
             '',
             DT.D_BAR_OPT_CODE AS 操作员,
             S.STAY_WHY_NAME AS 异常原因,
             T.EXCEPTION_NAME AS 异常状态,
             (CASE DT.DUTY_STATUS
               WHEN '0' THEN
                ''
               WHEN '1' THEN
                '仓库发件晚点'
               WHEN '2' THEN
                '中转发件晚点'
               WHEN '3' THEN
                '运输到达晚点'
               WHEN '4' THEN
                '仓库出仓晚点'
               WHEN '5' THEN
                '延误派送'
               ELSE
                '其他'
             END) AS 定责状态
        FROM TT_WAYBILL_ROUTE_INFO DT
        LEFT JOIN ompweb.Tm_Bar_Stay_Why_Code S
          ON DT.EXCEPTION_REASON = S.STAY_WHY_CODE
        LEFT JOIN TEMP_EXCEPTION_STATUS T
          ON NVL(T.EXCEPTION_STATUS, 0) =
             SUBSTR(DT.EXCEPTION_STATUS,
                    1,
                    INSTR(DT.EXCEPTION_STATUS || ',', ',') - 1)
       INNER JOIN TEMP_SRCZONECODE_CYX C
          ON DT.WAYBILL_NO = C.WAYBILL_NO
       WHERE DT.REPORT_DT = B;
    COMMIT;
    B := B + 1;
  END LOOP;
 
  EXECUTE IMMEDIATE 'TRUNCATE TABLE TEMP_CONVE_PLATENUM';
  FOR Q IN 1 .. 15 LOOP
    INSERT INTO TEMP_CONVE_PLATENUM
      (VEHICLE_AREA, PLATE_NUM)
      SELECT T.VEHICLE_AREA, T.PLATE_NUM
        FROM TT_CONVEYANCE_SHOW T
       WHERE T.PLAN_DATE >= C
         AND T.PLAN_DATE < D;
    COMMIT;
    C := C + 1;
    D := D + 1;
  END LOOP;
 
  EXECUTE IMMEDIATE 'TRUNCATE TABLE TEMP_CONVE_VEHICLEAREA';
  INSERT INTO TEMP_CONVE_VEHICLEAREA
    (VEHICLE_AREA, PLATE_NUM, RN)
    SELECT *
      FROM (SELECT T.VEHICLE_AREA,
                   T.PLATE_NUM,
                   ROW_NUMBER() OVER(PARTITION BY PLATE_NUM ORDER BY PLATE_NUM) RN
              FROM TEMP_CONVE_PLATENUM T)
     WHERE RN = 1;
  COMMIT;
END;

--05 修改车辆管理区
MERGE INTO TEMP_RESULT_CYX T
  USING TEMP_CONVE_VEHICLEAREA R
  ON (T.D_VEHICLE_NO = R.PLATE_NUM)
  WHEN MATCHED THEN
    UPDATE SET T.VEHICLE_AREA = R.VEHICLE_AREA;
  COMMIT;

--06 查询结果给用户
SELECT WAYBILL_NO       AS 运单号,
       SRC_ZONE_CODE    AS 始发网点,
       DEST_ZONE_CODE   AS 目的网点,
       ROUTE_INDEX      AS 路由序号,
       BATCH_TYPE       AS 班次类型,
       S_ZONE_CODE      AS 静态网点,
       S_BATCH_CODE     AS 静态班次,
       S_OPT_TM         AS 静态操作时间,
       S_DELIVERY_TM    AS 静态派送时效,
       D_ZONE_CODE      AS 实际网点,
       D_BATCH_CODE     AS 实际班次,
       D_OPT_TM         AS 动态操作时间,
       D_DELIVERY_TM    AS 动态派送时效,
       D_S_OPT          AS 时差,
       D_S_DIFF         AS 时效差值,
       D_VEHICLE_NO     AS 车标号,
       VEHICLE_AREA     AS 车辆管理方,
       D_BAR_OPT_CODE   AS 操作员,
       STAY_WHY_NAME    AS 异常原因,
       EXCEPTION_STATUS AS 异常状态,
       DUTY_STATUS      AS 定责状态
  FROM TEMP_RESULT_CYX
ORDER BY WAYBILL_NO, ROUTE_INDEX;
分享到:
评论

相关推荐

    WinCE脚本解析程序(写写文本就能做很多意想不到的事情)

    4. 支持从文件读入并作为参数的方式(即配置文件中嵌入其它文件,嵌套层数无限制,一般为临时创建的文件,一些不确定参数可以先保存到临时文件,再用此程序读取)。参考特殊说明。5. 支持VB代码嵌入,方便变量使用、...

    Sqlserver2000经典脚本

    限制列数的交叉表.sql │ ├─第07章 │ │ 7.1 splitpage.asp │ │ 7.2.1 TOP n 实现的通用分页存储过程.sql │ │ 7.2.2 字符串缓存实现的通用分页存储过程.sql │ │ 7.2.3 临时表...

    scripts:我使用的几个方便的脚本

    脚本截屏一个简单的脚本,它创建一个临时文件并继续上传它,输出 URL,然后将其删除。图像从下载专辑。 该脚本取自垃圾清理 ~/music 中不需要的文件。拍手(编译乳胶和预览) 一种编译乳胶文件并在 evince 中查看...

    Shell脚本实现删除邮件队列

    最近遇到了一个麻烦事:机器上邮件队列里老是被塞满,但是又不知道是什么地方发邮件写入的,十分蛋疼,没办法,只有临时处理一下了,写了个删除邮件的脚本rm_mqueue.sh。 代码如下: #/bin/bash ##################...

    onekey_LAMP_source:centos7源码包安装lamp脚本-源码包

    onekey_LAMP_Script 本脚本为一键部署Apache,PHP,Mariadb,...脚本执行时,会创建临时swap分区,防止小内存云主机环境下安装,因内存不足导致mysql编译安装失败,安装后重组会删除 执行数据库初始化时若提示

    SamsungTidyData:用于整理来自 UCI 的三星加速度计数据的脚本

    run_analysis.R 脚本文件说明最顶层的函数是GenerateAveragedTidySet ,它调用GenRawTidyDataSet来生成一个包含所有均值和标准特征的临时整理表。 然后调用ComputeTidySetWithAvgs来生成最终的整理表。 详细描述了...

    applem2_20120610苹果引擎配套工具,内有登陆器配置

    7、更新脚本命令TAKEW拿取身上装备,除了以往指定装备名称拿取外, 还可以使用指定装备位置拿取(方便指定拿取左或右戒指和手镯) 如: TAKEW 开天 或 TAKEW 1 前者意思是拿走身上的开天装备,后者的意思是拿走武器...

    VBSedit 5.2.4 & HtaEdit 3.3.1 英文绿色破解版

    更重要的是,用脚本获取当前目录就会出错,本来想取得EXE所在目录,结果却取到了临时目录。所以就不再用它了。现在新出的5.X版据说改进了这个问题,现在不解压到临时目录再运行了,所以又再用用看。 原官方安装程序...

    GMusic-MPD:GMusicProxy 和 MPD 的帮助脚本

    GMusic-MPD GMusicProxy 和 MPD 的帮助脚本。 将扩展 M3U 数据临时添加到当前播放列表您可以使用将 Google Play Music-All Access 与正确的扩展 m3u 数据一起使用。 然而,这不仅限于 GMusicProxy。 这取决于如何...

    精易模块[源码] V5.15

    10、新增“进程_取线程数”通过进程ID或进程名获取指定进程线程数。 MD5:89AECEA5D0E513E7D586EA8396AD17CC 精易模块 V5.0 what’s new:(20141121) 1、修正“类_通用对话框”会改变当前目录的BUG。感谢易友...

    易语言 茶凉专用模块

    子程序 到短路径, 文本型, 公开, 取指定路径的短路径名(返回收缩后的路径,无效返回空文本)如: c:\program files\ 收缩后为:C:\PROGRA~1\ .参数 文件名, 文本型, , 原路径 .子程序 到任意进制, 文本型, 公开, 可以将...

    CETool(最新2013.8)

    4. 支持从文件读入并作为参数的方式(即配置文件中嵌入其它文件,嵌套层数无限制,一般为临时创建的文件,一些不确定参数可以先保存到临时文件,再用此程序读取)。参考特殊说明。5. 支持VB代码嵌入,方便变量使用、...

    musicip:LMS MusicIP Linux集成

    回购内容MusicMagicMixer MusicIP 1.8和register.key取自 analyser Python脚本对m4a(以及具有数字类型的mp3)进行转码,并使用MusicIP进行分析。 proxy简单的python代理,可将分析机器之间的路径(和文件扩展名)与...

    fileio-utility:在您的终端上使用file.io-临时文件共享服务!

    file.io实用程序在您的终端上使用临时文件共享服务! 它将上传您的文件,并将生成的链接复制到剪贴板(取决于pbcopy )。安装如果您安装了homebrew ,则只需执行以下操作: brew tap nicholaspufal/tapbrew install ...

    在js中使用with语句中跨frame的变量引用问题

    在脚本编程时使用with语句,可以大大的缩减使用多级对象引用代码行的长度,这是JScript提供给我们的一个Syntax Sugar。当然不使用with,使用临时变量也可以达到同样的效果。不过创建变量时起名确实不是一件很遐意的...

    Java获取kettle转换的结果集

    Java获取kettle的结果集

    AppDynamics-101-Lab-Automation

    这些脚本取决于 。 可以使用PIP在本地安装(以下步骤已在OS X上进行了测试): 如果您尚未安装PIP,请执行以下操作: sudo easy_install pip 然后安装Ravello API: sudo pip install ravello-sdk 请注意,此脚本...

    700个批处理打包下载.rar

    无限制实数加减运算脚本.cmd 星光闪烁.bat 星光闪烁.cmd 显示c盘~z盘.bat 显示只有指定个数字符的行.cmd 显示各分区剩余空间情况.cmd 显示当面途径DIR.bat 显示所有分区的剩余空间(以MB为单位).cmd 显示本机用户...

    关于【python】【UDF】【HIVE】读取外部资源文件和第三方库的问题解决方案

    python 脚本中用到了第三方库 解决方案: 1.将需要的环境进行打包 tar virtualenv 2.hive-&gt;add archive python脚本中调用了本地的资源文件 解决方案: 1.首先外部资源要在运行之前添加,使用命令add jar [jar file]...

    大量批处理实用程序例程

    debug生成取色按钮程序.cmd dir.bat IE主页修改.bat jacksi.bat QQ精简.cmd sxs.exe 的查杀.bat sz.reg转换成reg.bat.bat WinPE 专用安装工具.cmd XP服务优化批处理.bat 不显示输入密码.cmd 与某人的QQ临时对话.cmd ...

Global site tag (gtag.js) - Google Analytics