iT邦幫忙

0

--問題發問的不好

完全看不懂自己在問甚麼
我清除掉

小魚 iT邦大師 1 級 ‧ 2018-08-22 12:03:56 檢舉
看來我的中文不好...
題目都看不懂 @@
debbie5 iT邦新手 5 級 ‧ 2018-08-22 13:45:22 檢舉
T^T 恩..換一個方式說...執行function輸入的日期,要抓輸入日期的前一筆 日期的資料,但是每筆異動的日期跟上一筆異動間隔天數不一定,有可能這個人異動日期是昨天,有可能是上禮拜,要怎麼才能捉到正確的異動資料,如果我這樣說 能理解嗎><

1 個回答

1
paicheng0111
iT邦高手 1 級 ‧ 2018-08-22 12:28:50
最佳解答

方法一

SELECT 
    dat, 
    (SELECT Max(dat) FROM table WHERE dat < A.dat) AS last_date
FROM table A

方法二

SELECT
    a.dat,
    Max(b.dat) AS LastDate
FROM
    Table a LEFT JOIN Table b ON a.dat > b.dat
GROUP BY a.dat
看更多先前的回應...收起先前的回應...
debbie5 iT邦新手 5 級 ‧ 2018-08-22 16:16:33 檢舉

https://ithelp.ithome.com.tw/upload/images/20180822/20111204N48XfN28Ow.png
謝謝大大的語法分享,確實能抓到前一筆資料的日期,只是我要放入函式去做點數異動運算,只是條件要指定前一筆的日期(SELECT A.DETAMT3 FROM DETAIL a LEFT JOIN DETAIL b ON a.DETADAT > b.DETADAT WHERE A.DETADAT='20180813' GROUP BY A.DETAMT3) 他才能做運算,這樣又回到原來的問題,我們不會預知要查哪一天的點數異動@@

既然已經有當日日期與前日日期,接下來用where子句或join on去指定即可。

debbie5 iT邦新手 5 級 ‧ 2018-08-22 17:42:46 檢舉

謝謝大大 ,我剛剛有用出來囉~~~
謝謝你的語法點醒了我!我卡好多天了~~~萬歲~~~耶!~~~

/images/emoticon/emoticon12.gif

我要發表回答

立即登入回答