日期:2014-05-19  浏览次数:20508 次

如何将这句改成标准sql语句?
create   table   info(id   int,unitid   varchar(50),unitcname   varchar(50),jifen   int)
go
insert   info   values(1, '1,2 ', '开发部,销售部 ',4)
insert   info   values(2, '1,4 ', '开发部,人事部 ',2)
insert   info   values(3, '3,4,5 ', '行政部,人事部,财务部 ',3)
insert   info   values(4, '1,3 ', '开发部,行政部 ',1)
go

create   table   unit(id   int,cname   varchar(20))
go
insert   unit   values(1, '开发部 ')
insert   unit   values(2, '销售部 ')
insert   unit   values(3, '行政部 ')
insert   unit   values(4, '人事部 ')
insert   unit   values(5, '财务部 ')
go

select   id,cname,[积分结果]=(select   sum(jifen)   from   info   where   charindex( ', '+ltrim(a.id)+ ', ', ', '+unitid+ ', ')> 0)   from   unit   a

就是上面的那一句!


------解决方案--------------------
楼主,你还要怎么改,上面用到的是自连接.
------解决方案--------------------
select a.id,a.cname,[积分结果]=sum(b.jifen)
from unit a, info b
where charindex( ', '+ltrim(a.id)+ ', ', ', '+b.unitid+ ', ')> 0
group by a.id, a.cname
------解决方案--------------------
mark!