[SQL ] 請教這個要怎麼下查詢語法?

看板Database作者 (麥田)時間12年前 (2013/06/09 02:48), 編輯推噓1(106)
留言7則, 3人參與, 最新討論串1/1
MS SQL 2000 sp3 我有個資料表與其資料樣本如下 [memberconsume] cid 交易序號 mid 會員序號 cdate 交易日期 ap 獲得點數 up 使用點數 sp 結餘點數 [memberconsume] cid mid cdate ap up sp 1 1 2013-1-1 5 0 5 2 2 2013-1-2 7 0 7 3 3 2013-1-3 15 0 15 4 2 2013-1-4 10 2 15 5 1 2013-1-5 5 0 10 6 1 2013-1-6 0 10 0 7 2 2013-1-7 8 0 23 8 3 2013-1-8 0 15 0 9 1 2013-1-9 20 0 20 10 1 2013-2-1 13 15 18 11 2 2013-3-1 10 0 33 12 2 2013-4-1 0 11 22 我想要查目前哪些會員的點數(sp)已經為 0,而且要顯示最後一次交易記錄。 請問這該怎麼一次就查出來? 我對sql 語法不太熟,目前的做法感覺蠻差的,先簡單撈出來, 然後再由程式過濾,這樣處理速度有點慢。 感謝大家 ********************************* 最後寫出來了 SELECT MemberConsume.cid, MemberConsume.mid, MemberConsume.sp FROM MemberConsume INNER JOIN (SELECT MAX(MemberConsume_1.cid) AS CN FROM MemberConsume AS MemberConsume_1 INNER JOIN Member ON MemberConsume_1.mid = Member.mid GROUP BY MemberConsume_1.mid) AS MCA ON MemberConsume.cid = MCA.CN WHERE (MemberConsume.sp = 0) 謝謝大家的提示 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.191.176

06/09 12:04, , 1F
先找出每個會員最近一天的交易記錄
06/09 12:04, 1F

06/09 12:04, , 2F
再篩選你要的條件
06/09 12:04, 2F

06/09 18:54, , 3F
SELECT DISTINCT(mid), MAX(cdate) from table where sp=0
06/09 18:54, 3F

06/09 18:55, , 4F
大概這樣的意思 我沒測試過..
06/09 18:55, 4F

06/10 09:01, , 5F
TO moyasi , 我想,我的問題點就卡在這邊不會下 ^^;;
06/10 09:01, 5F

06/10 09:03, , 6F
to lbeeon, 這語法沒過。"資料行 'mid' 在選取清單中無效
06/10 09:03, 6F

06/10 09:03, , 7F
因為他並未包含在彙總函式或 GROUP BY 子句中"
06/10 09:03, 7F
※ 編輯: mywheat 來自: 114.32.98.180 (06/10 09:22)
文章代碼(AID): #1Hitncys (Database)