作者mywheat (麦田)
看板Database
标题[SQL ] 请教这个要怎麽下查询语法?
时间Sun Jun 9 02:48:04 2013
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
1F:推 moyasi:先找出每个会员最近一天的交易记录 06/09 12:04
2F:→ moyasi:再筛选你要的条件 06/09 12:04
3F:→ lbeeon:SELECT DISTINCT(mid), MAX(cdate) from table where sp=0 06/09 18:54
4F:→ lbeeon:大概这样的意思 我没测试过.. 06/09 18:55
5F:→ mywheat:TO moyasi , 我想,我的问题点就卡在这边不会下 ^^;; 06/10 09:01
6F:→ mywheat:to lbeeon, 这语法没过。"资料行 'mid' 在选取清单中无效 06/10 09:03
7F:→ mywheat:因为他并未包含在汇总函式或 GROUP BY 子句中" 06/10 09:03
※ 编辑: mywheat 来自: 114.32.98.180 (06/10 09:22)