我有一表VIPinfo(cardID,shopNo,remark,operDate)对应表项为会员信息表(会员卡号,店铺号,标记,操作时间)。其中“标记”包含的种类有“充值、消费、补卡”等,operDate的格式为‘2014-08-01 14:21:00'。我想以店铺分类求取每个店铺每日的会员注册人数。已有语句如下:
select minoperdate as 日期,count(cardID)as 注册数
from
(
select cardId,convert(varchar(100),min(operDate),23)as minoperdate
from YCSY.dbo.pos_mbCardFlow
where remark like '%台充值'
group by cardId
)a
group by minoperdate
得出结果如下图:

------解决思路----------------------
select shopNo,minoperdate as 日期,count(cardID)as 注册数
from
(
select shopNo,cardId,convert(varchar(100),min(operDate),23)as minoperdate
from YCSY.dbo.pos_mbCardFlow
where remark like '%台充值'
group by shopNo,cardId
)a
group by shopNo, minoperdate
我的打酱油的。。。------解决思路----------------------
with cte as
(select cardid,MIN(operdate) as mindate from #VIPinfo
where remark like'%台充值'
group by cardid)
select shopno,COUNT(a.cardid) as counts from #vipinfo as a
join cte as b on a.cardid=b.cardid and a.operdate=b.mindate
group by shopno
--结果
shopno counts
-------------------------------------------------- -----------
8880001 3
(1 行受影响)