Oracle
根據一個月內創建單據的次數獲取 n 個單據編號
嗨,伙計們,這是我的桌子,我需要一個 slipno collom 的單號,該單號基於 empno 在一個月內有一個 slipno 的次數。
為了更好地解釋這裡是我的桌子
---------------------------------- SLIPNO | EMPNO | DATE | ---------------------------------- 123 | 0151450 | 07/OCT/17 | 234 | 0151450 | 14/OCT/17 | 345 | 0151460 | 10/OCT/17 | 456 | 0151466 | 05/OCT/17 | 567 | 0151466 | 01/OCT/17 | ----------------------------------
需要這樣的結果
----------------------------------------------- SLIPNO | EMPNO | DATE | SLIPNUMBER | ----------------------------------------------- 123 | 0151450 | 07/OCT/17 | 1 | 234 | 0151450 | 14/OCT/17 | 2 | 345 | 0151460 | 10/OCT/17 | 1 | 456 | 0151466 | 05/OCT/17 | 1 | 567 | 0151466 | 01/OCT/17 | 2 | -----------------------------------------------
使用視窗函式
ROW_NUMBER()
。SELECT SLIPNO, EMPNO, DT, ROW_NUMBER() OVER (PARTITION BY EMPNO ORDER BY DT ASC) AS SLIPNUMBER FROM SLIPS;
DB Fiddle Test來展示一個例子。
另請注意,您不應將
DATE
其用作列名,因為它是保留字。