iT邦幫忙

0

ORACLE SQL 多筆沖正資料時

  • 分享至 

  • xImage

請問我有 a table有客戶編號,交易日期,交易種類,交易金額,更正記號
當天有3筆交易,一筆交易200元,一筆交易沖回(更正)200元,又做了一筆200元,我要如何抓到正確旳那筆

客戶編號 交易日期 交易種類 交易金額 更正記號

A0001 1131028 A1 200 0
A0001 1131028 A1 200 1
A0001 1131028 A1 200 0 -->只要取這筆,甚至有可能沒有這筆
A0001 11301028 A2 1000 0
A0001 11301028 A9 2000 0

謝謝幫忙解惑...

sam0407 iT邦大師 1 級 ‧ 2024-10-29 10:12:05 檢舉
就您現有的資料來看,最快的作法就是將同一客戶編號/交易日期/交易種類的更正記號=0的交易金額總和-更正記號=1的交易金額總和

因為資料會不會有可能長這樣?
A0001 1131028 A1 200 0
A0001 1131028 A1 100 1
A0001 1131028 A1 200 0
尼克 iT邦大師 1 級 ‧ 2024-10-29 11:52:40 檢舉
沒有寫入時間,根本沒判斷最後寫的是誰?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
kawa0710
iT邦新手 1 級 ‧ 2024-10-29 09:32:23

缺了交易編號,請想辦法去抓來用。

假設你的例子都是整單沖銷:

  1. 建立一個(你好處理的選1種:array/collection/list/dictionary)變數,暫存資料用
  2. 讀到更正記號 = 0記入暫存
  3. 讀到更正記號 = 1到暫存區找有沒有重覆的交易編號,有就從暫存變數裡移除

全部資料經過2~3,暫存變數就只會剩下更正記號 = 0的交易編號。


如果是部份沖銷...問主管吧...已經是制度問題不是技術問題了

0
亂皮皮
iT邦新手 2 級 ‧ 2024-10-30 09:00:22

我會判斷旗標0為正1為負,將正負符號套上金額最後GROUP BY加總出最後的金額

我要發表回答

立即登入回答