看板 Database 關於我們 聯絡資訊
※ 引述《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)
evernever:col 5 不是等於 col 3 + col 4 嗎? 怎麼還要 join? 04/23 10:54
grence:原po把文刪掉了讓我的作法像笨蛋一樣XDD 04/23 17:30
我錯了,是版主刪的 @@a 在原文下的推文
grence:當次金額+交易後金額 as 交易前餘額(逃)04/23 00:33
asklove:不行...交易前餘額要用來驗算 不能直接用前兩個欄位相加04/23 00:36
asklove:因為有可能資料不對變成 50 394 44504/23 00:41
※ 編輯: grence 來自: 61.229.202.62 (04/23 17:36)
asklove:為什麼會被版主砍掉呢? 04/23 21:00