Re: [SQL ] 前次交易餘額

看板Database (資料庫)作者 (多想兩分鐘 = =")時間17年前 (2009/04/23 01:54), 編輯推噓3(303)
留言6則, 3人參與, 最新討論串1/1
※ 引述《asklove (問愛)》之銘言: : 資料庫:MySQL : 假設有一個資料表如下: : 交易時間 卡號 當次交易金額 交易後餘額 : 2009/03/01 05:49:56 123456789 0 445 : 2009/03/01 06:37:48 123456789 51 394 : 2009/03/01 17:07:59 123456789 0 394 : 2009/03/01 17:48:33 123456789 51 343 欄位擴充先想到 join. 隨便建個表 test2, pk是 time, no select * from test2 time no amt left_amt 1 1 0 445 2 1 51 394 3 1 0 394 4 1 51 343 SELECT t1.*, t2.left_amt before_amt FROM `test2` as t1 left join `test2` as t2 on t1.no = t2.no and t2.time=( select max(t3.time) from test2 as t3 where t1.time>t3.time and t1.no=t3.no ) time no amt left_amt before_amt 1 1 0 445 NULL 2 1 51 394 445 3 1 0 394 394 4 1 51 343 394 收工。 註解可參考本版 #19rLesZD 不同的是這方式可不限於連號整數 : 現在想要根據每次的"當次交易金額"和"交易後餘額", : 使用SQL查詢語法產生如下結果: : 交易時間 卡號 當次交易金額 交易後餘額 交易前餘額 : 2009/03/01 05:49:56 123456789 0 445 null : 2009/03/01 06:37:48 123456789 51 394 445 : 2009/03/01 17:07:59 123456789 0 394 394 : 2009/03/01 17:48:33 123456789 51 343 394 : 也就是多出一個"交易前餘額"的欄位, : 請問各位高手,光用SQL語法能辦得到嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.193.203 ※ 編輯: grence 來自: 61.229.193.203 (04/23 02:42)

04/23 10:54, , 1F
col 5 不是等於 col 3 + col 4 嗎? 怎麼還要 join?
04/23 10:54, 1F

04/23 17:30, , 2F
原po把文刪掉了讓我的作法像笨蛋一樣XDD
04/23 17:30, 2F
我錯了,是版主刪的 @@a 在原文下的推文

04/23 00:33, , 3F
當次金額+交易後金額 as 交易前餘額(逃)
04/23 00:33, 3F

04/23 00:36, , 4F
不行...交易前餘額要用來驗算 不能直接用前兩個欄位相加
04/23 00:36, 4F

04/23 00:41, , 5F
因為有可能資料不對變成 50 394 445
04/23 00:41, 5F
※ 編輯: grence 來自: 61.229.202.62 (04/23 17:36)

04/23 21:00, , 6F
為什麼會被版主砍掉呢?
04/23 21:00, 6F
文章代碼(AID): #19xrdK_F (Database)
文章代碼(AID): #19xrdK_F (Database)