求一个SQL语句啊。。。在线等!!!急急急!!!
A.活动表(活动ID,活动名称)
B.活动奖项表(奖品ID,活动ID,奖项名称,奖品名称)——奖项名称字段比如[一等奖、二等奖。。。之类的]
C.奖项名额分配表(ID,奖品ID,中间名额,中奖范围[该字段保存的是“参与活动用户表”的用户ID])
//中奖范围:设置奖项名称的中奖用户,比如说我设置一等奖的中奖用户是张三、李四 保存的是张三、李四的用户ID,该表只有一条记录,也就是一等奖设置一次名额分配
D.参与活动用户表(用户ID,活动ID,用户名称,部门,手机号)
-------------------------------------------------------------------------
插入数据:
A:
insert into 活动表 values( 'HD1001 ', '元旦晚会抽奖活动 ')
B:
insert into 活动奖项表 values( 'JX1001 ', 'HD1001 ', '一等奖 ', '笔记本 ')
insert into 活动奖项表 values( 'JX1002 ', 'HD1001 ', '二等奖 ',‘移动硬盘’)
C:
insert into 奖项名额分配表 values( 'FP1001 ',‘JX1001’,1, 'zs ')
insert into 奖项名额分配表 values( 'FP1002 ',‘JX1002’,2, 'ls,sq ')
D:
insert into 参与活动用户表 values( 'zs ', 'DG1001 ', '张三 ', '销售部 ', '130xxx ')
insert into 参与活动用户表 values( 'ls ', 'DG1001 ', '李四 ', '财务部 ', '131xxx ')
insert into 参与活动用户表 values( 'ww ', 'DG1001 ', '王五 ', '采购部 ', '132xxx ')
insert into 参与活动用户表 values( 'zl ', 'DG1001 ', '赵六 ', '库存部 ', '133xxx ')
insert into 参与活动用户表 values( 'sq ', 'DG1001 ', '孙七 ', '生产部 ', '134xxx ')
--------------------------------------------------------------------------
现需要查询结果集如下:
姓名 部门 手机号 奖项名称 中奖名额 是否中奖名额
张三 销售部 130xxx 一等奖 1 是
李四 财务部 131xxx 二等奖 2 是
王五 采购部 132xxx 否
赵六 库存部 133xxx 否
孙七 生产部 134xxx 二等奖 2 是
--------------------------------------------------------------------------
我现在只能获取到活动表的活动ID,如何通过它关联查询出如上结果集?在线等,有问题速度回复,急急急!!!
[解决办法]
select a.用户名称,a.部门,a.手机号,c.奖项名称,b.中奖名额,(case when b.中奖范围 is null then '否' else '是' end)是否中奖from 参与活动用户表 a left join 奖项名称分配表 b on charindex(','+a.用户名称+',',','+b.中奖范围+',')>0left join 活动奖项表 c on c.奖品ID=b.奖品ID