按成發文!!!還在想怎麼沒有人回復問題QQ
這邊使用sql-server語法
資料庫內有張表 內有欄位 id(流水編號) num(會員編號) date(日期時間)
需要依照會員大小排序後 再取每個會員最大時間的兩筆資料
原本
id num date
1 A1 201703
2 B1 201608
3 A1 202104
4 C1 202006
5 A1 201610
6 B1 201703
.
.
希望變成(id只是示意,不是一定要這樣)
後取每個 num 的date最新的前2筆資料
id num date 取
3 A1 202104 v
1 A1 201703 v
5 A1 201610
6 B1 201703 v
2 B1 201608 v
4 C1 201606 v(對C1只有這筆最新所以也要取)
.
.
目前已經做到可以將同一位會員排在一起,但就是無法順利排日期
加過ORDER BY 也不是
之後取每個會員日期最新2筆資料
只知道max可以取最大TOP取前幾筆資料,但不知道要怎麼取每個會員的前兩筆資料
先謝謝各位幫助
SELECT * FROM
(SELECT ROW_NUMBER()
OVER(
ORDER BY MF_Num ASC
)AS MF_Nums, CONVERT( date, StartTime + '01')AS sDate,* FROM [tableName])AS aTable
CREATE TABLE T (
id int,
num nvarchar(20),
xdate nvarchar(20));
INSERT INTO T
VALUES
(1,'A1','201703'),
(2,'B1','201608'),
(3,'A1','202104'),
(4,'C1','202006'),
(5,'A1','201610'),
(6,'B1','201703');
SELECT id,num,xdate
FROM (
SELECT ROW_NUMBER() OVER (PARTITION BY num ORDER BY xdate DESC) AS NO,*
FROM T
) AS K
WHERE NO<=2