首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

多表查询求统计,求sql话语

2012-08-14 
多表查询求统计,求sql语句有三个表:A,B,CA表保存会员信息,包括ID,会员等级(1,2,3,4)等B表保存会员购买信息

多表查询求统计,求sql语句
有三个表:A,B,C
A表保存会员信息,包括ID,会员等级(1,2,3,4)等
B表保存会员购买信息(购买金额)
C表保存会员登录时间(类型datetime)
每个表都有会员的ID,求今年2月后还有登录记录并且消费大于10块各个等级会员的个数和2月后没有登录过的记录

[解决办法]

SQL code
--今年2月后还有登录记录并且消费大于10块各个等级会员的个数SELECT 会员等级,COUNT(1) AS numFROM a INNER JOIN B ON A.Id = B.Id AND B.购买金额 > 10INNER JOIN C ON A.Id = C.id AND 登录时间 > RTRIM(DATEPART(YEAR,GETDATE())) + '-03-01 0:00:00'GROUP BY 会员等级--2月后没有登录过的记录SELECT ID,会员等级FROM a WHERE NOT EXISTS (SELECT 1 FROM C WHERE A.Id = C.id AND 登录时间 > RTRIM(DATEPART(YEAR,GETDATE())) + '-03-01 0:00:00')
[解决办法]
SQL code
-- 各个等级会员的个数select Level, count(1)from Aleft join (  select userID  from B  group by userID  -- 消费大于10  having sum(amount)>10) as b on a.ID = b.userIDwhere 1=1-- 今年2月后还有登录记录and exists (select 1 from C where c.userID = a.ID    and c.logintime >= '2012-02-01')group by Level 

热点排行