Oracle排序函數Rank
出口給報關行出貨的時候,同一票shipment中合併多個invoice跟packing,轉出到廠商的報關系統時候,出口報關的序號會將invoice的序號做自動增加。
因為wafer會有出口給其他外包做初階加工,加工完之後再回貨,回貨就是需要再進口回來。進口做報關的時候就會有原出口的報單號碼,也需要明確到報單的項次。
因為原本出口并沒有字段記錄對於的出口報關項次,所以只能重新去計算一遍。
舉例如下,SI# 100600486為兩筆invoice並單出貨,第一筆INV#100614-03-CSS有30個項次,第二筆INV#100615-01-CSS有11個項次。
SELECT M.SHIPMENT_ID, I.INV_NO, I.SEQ_NO, I.WIP_ENTITY_NAME,I.DESCP
FROM DECL_INV M, DECL_INV_ITEM I
WHERE M.INV_NO = I.INV_NO
AND M.DOC_FLAG = 'D'
AND I.DOC_FLAG = 'D'
AND M.SHIPMENT_ID = ''
| SHIPMENT_ID | INV_NO | SEQ_NO | WIP_ENTITY_NAME | DESCP |
|---|---|---|---|---|
| 100600486 | 100614-03-CSS | 1 | 227470 | 6" Wafer |
| 100600486 | 100614-03-CSS | 2 | 227471 | 6" Wafer |
| 100600486 | 100614-03-CSS | 3 | 227472 | 6" Wafer |
| 100600486 | 100614-03-CSS | 4 | 227473 | 6" Wafer |
| 100600486 | 100614-03-CSS | 5 | 227474 | 6" Wafer |
| 100600486 | 100614-03-CSS | 6 | 227475 | 6" Wafer |
| 100600486 | 100614-03-CSS | 7 | 227476 | 6" Wafer |
| 100600486 | 100614-03-CSS | 8 | 227477 | 6" Wafer |
| 100600486 | 100614-03-CSS | 9 | 227478 | 6" Wafer |
| 100600486 | 100614-03-CSS | 10 | 227479 | 6" Wafer |
| 100600486 | 100614-03-CSS | 11 | 227480 | 6" Wafer |
| 100600486 | 100614-03-CSS | 12 | 227481 | 6" Wafer |
| 100600486 | 100614-03-CSS | 13 | 227482 | 6" Wafer |
| 100600486 | 100614-03-CSS | 14 | 227484 | 6" Wafer |
| 100600486 | 100614-03-CSS | 15 | 227485 | 6" Wafer |
| 100600486 | 100614-03-CSS | 16 | 227487 | 6" Wafer |
| 100600486 | 100614-03-CSS | 17 | 227488 | 6" Wafer |
| 100600486 | 100614-03-CSS | 18 | 227491 | 6" Wafer |
| 100600486 | 100614-03-CSS | 19 | 227493 | 6" Wafer |
| 100600486 | 100614-03-CSS | 20 | 227495 | 6" Wafer |
| 100600486 | 100614-03-CSS | 21 | 227496 | 6" Wafer |
| 100600486 | 100614-03-CSS | 22 | 227497 | 6" Wafer |
| 100600486 | 100614-03-CSS | 23 | 227498 | 6" Wafer |
| 100600486 | 100614-03-CSS | 24 | 227499 | 6" Wafer |
| 100600486 | 100614-03-CSS | 25 | 227500 | 8" Wafer |
| 100600486 | 100614-03-CSS | 26 | 227501 | 8" Wafer |
| 100600486 | 100614-03-CSS | 27 | 227502 | 6" Wafer |
| 100600486 | 100614-03-CSS | 28 | 227503 | 5" Wafer |
| 100600486 | 100614-03-CSS | 29 | 227504 | 5" Wafer |
| 100600486 | 100614-03-CSS | 30 | 227505 | 5" Wafer |
| 100600486 | 100615-01-CSS | 1 | 227748 | 6" Wafer |
| 100600486 | 100615-01-CSS | 2 | 227753 | 6" Wafer |
| 100600486 | 100615-01-CSS | 3 | 227754 | 6" Wafer |
| 100600486 | 100615-01-CSS | 4 | 227756 | 6" Wafer |
| 100600486 | 100615-01-CSS | 5 | 227757 | 6" Wafer |
| 100600486 | 100615-01-CSS | 6 | 227758 | 6" Wafer |
| 100600486 | 100615-01-CSS | 7 | 227759 | 6" Wafer |
| 100600486 | 100615-01-CSS | 8 | 227761 | 6" Wafer |
| 100600486 | 100615-01-CSS | 9 | 227762 | 6" Wafer |
| 100600486 | 100615-01-CSS | 10 | 227765 | 5" Wafer |
| 100600486 | 100615-01-CSS | 11 | 227766 | 6" Wafer |
SELECT rank() over(partition by M.SHIPMENT_ID ORDER BY I.INV_NO ASC, I.SEQ_NO ASC) DECLEAR_SEQ_NO,
M.SHIPMENT_ID,
I.INV_NO,
I.SEQ_NO,
I.WIP_ENTITY_NAME,
I.DESCP
FROM DECL_INV M, DECL_INV_ITEM I
WHERE M.INV_NO = I.INV_NO
AND M.DOC_FLAG = 'D'
AND I.DOC_FLAG = 'D'
AND M.SHIPMENT_ID = ''
這裡其實主要是用到RANK函數,依據INV NO跟SEQ NO來做排序得到一個排序之後的序號,結果如下:
| DECLEAR_SEQ_NO | SHIPMENT_ID | INV_NO | SEQ_NO | WIP_ENTITY_NAME | DESCP |
|---|---|---|---|---|---|
| 100600486 | 100614-03-CSS | 1 | 227470 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 2 | 227471 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 3 | 227472 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 4 | 227473 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 5 | 227474 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 6 | 227475 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 7 | 227476 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 8 | 227477 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 9 | 227478 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 10 | 227479 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 11 | 227480 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 12 | 227481 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 13 | 227482 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 14 | 227484 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 15 | 227485 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 16 | 227487 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 17 | 227488 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 18 | 227491 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 19 | 227493 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 20 | 227495 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 21 | 227496 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 22 | 227497 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 23 | 227498 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 24 | 227499 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 25 | 227500 | 8" Wafer | |
| 100600486 | 100614-03-CSS | 26 | 227501 | 8" Wafer | |
| 100600486 | 100614-03-CSS | 27 | 227502 | 6" Wafer | |
| 100600486 | 100614-03-CSS | 28 | 227503 | 5" Wafer | |
| 100600486 | 100614-03-CSS | 29 | 227504 | 5" Wafer | |
| 100600486 | 100614-03-CSS | 30 | 227505 | 5" Wafer | |
| 100600486 | 100615-01-CSS | 1 | 227748 | 6" Wafer | |
| 100600486 | 100615-01-CSS | 2 | 227753 | 6" Wafer | |
| 100600486 | 100615-01-CSS | 3 | 227754 | 6" Wafer | |
| 100600486 | 100615-01-CSS | 4 | 227756 | 6" Wafer | |
| 100600486 | 100615-01-CSS | 5 | 227757 | 6" Wafer | |
| 100600486 | 100615-01-CSS | 6 | 227758 | 6" Wafer | |
| 100600486 | 100615-01-CSS | 7 | 227759 | 6" Wafer | |
| 100600486 | 100615-01-CSS | 8 | 227761 | 6" Wafer | |
| 100600486 | 100615-01-CSS | 9 | 227762 | 6" Wafer | |
| 100600486 | 100615-01-CSS | 10 | 227765 | 5" Wafer | |
| 100600486 | 100615-01-CSS | 11 | 227766 | 6" Wafer |
Oracle排序函數Rank的更多相关文章
- oracle decode(nvl(estimate_qty,0),0,1,estimate_qty) 函數
oracle decode(nvl(estimate_qty,0),0,1,estimate_qty) 函數
- Oracle Round 函式 (四捨五入)
Oracle Round 函式 (四捨五入)描述 : 傳回一個數值,該數值是按照指定的小數位元數進行四捨五入運算的結果.SELECT ROUND( number, [ decimal_places ] ...
- js匿名函數
(function($){})(jquery) == (function($){})(jQuery) 实际上是匿名函数 用于存放开发插件的代码 作用(非常有用): 这种写法的最大好处是形成闭包.在(f ...
- Math.Round函數
Math.Round這個函數的解釋是將值按指定的小數位數舍入,但並不就是四捨五入.這種舍入有時稱為就近舍入或四舍六入五成雙 其實在 VB, VBScript, C#, J#, T-SQL 中 Roun ...
- C#判断奇偶数的函數
// 现代流行的"程序员" public static bool IsOdd(int n) { while (true) { switch (n) { : return true; ...
- PHP 計算字符串長度函數
PHP內置的字符串長度函數strlen無法正確處理中文字符串,它得到的只是字符串所占的字節數.對於GB2312的中文編碼,strlen得到的值是漢字個數的2倍,而對於UTF-8編碼的中文,就是3倍的差 ...
- SQL窗体函數一例
需求: MSSQL,列出服務實例中全部數據庫的例如以下信息: 數據庫ID.數據庫名.創建日期.數據文件類型.數據文件大小.數據庫總大小.文件所在路徑. 寫法(後面的百分比為所花時間占比): -- 连接 ...
- js函數
函數是什麼?函數就是被事件驅動或者調用執行的可重複的代碼塊. 函數聲明: 使用關鍵詞function,關鍵詞function大小敏感. function a{代碼塊} 局部變量: 在函數內部聲明的變量 ...
- concat函數 函數concat 可以用來合拼兩個或以上的字串。
12. “Mexico 墨西哥”的首都是”Mexico City”. 顯示所有國家名字,其首都是國家名字加上”City”. concat函數 函數concat 可以用來合拼兩個或以上的字串. : SE ...
随机推荐
- Source Insight中文字体设置
Source Insight是一个面向项目开发的程序编辑器和代码阅读工具,它拥有内置的对C/C++, C#和Java等程序的分析,分析你的源代 码并在你工作的同时动态维护它自己的符号数据库,并自动为你 ...
- Effective java笔记2--创建于销毁对象
一.创建对象的两种方式 1.提供公有的构造器. 2.提供一个返回类实例的静态方法. 二.使用静态方法创建对象 优势: 1.静态工厂方法的一个好处是,与构造函数不同,静态工厂方法具有名字.产生的客户端代 ...
- Annotation之一:Java Annotation基本功能介绍
一.元数据的作用 如果要对于元数据的作用进行分类,目前还没有明确的定义,不过我们可以根据它所起的作用,大致可分为三类: 编写文档:通过代码里标识的元数据生成文档.这是最常见的,也是java 最早提供的 ...
- PHP手机号中间四位用星号*代替显示
三种实现方式 <?php $tel = '12345678910'; //1.字符串截取法 $new_tel1 = substr($tel, 0, 3).'****'.substr($tel, ...
- thinkphp中的_initialize方法
子类的_initialize方法自动调用父类的_initialize方法.而php的构造函数construct,如果要调用父类的方法,必须在子类构造函数显示调用parent::__construct( ...
- ARM-Linux移植之(四)——根文件系统构建
相关工具版本: busybox-1.7.0 arm-linux-4.3.2 linux-2.6.22 1.配置busybox并安装. 在我们的根文件系统中的/bin和/sbin目录下有各种命令的应 ...
- 升级python到2.7
wget http://python.org/ftp/python/2.7.8/Python-2.7.8.tgz tar zxvf Python-.tgz cd Python- ./configure ...
- phpStudy启动失败时的解决方法 提示缺vc9运行库
问题描述: 问题产生原因分析: php5.3.5.4和apache都是用vc9编译,电脑必须安装vc9运行库才能运行. php5.5.5.6是vc11编译,如用php5.5.5.6必须安装vc11运行 ...
- 如何查看路由器中的pppoe拨号密码?
1 2 3 4 5 6 分步阅读 有时候把宽带的账号密码给忘了,进路由器的拨号页面看了一下,账号能看到,就密码是以“*”号形式显示的,没法用“肉眼”识别出来,怎么办呢?难道真的非得打电话问运营商不可? ...
- bash shell笔记3 结构化命令二
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/513601 三 ...