建议用C#代码写,sql有的难搞,一下仅提供思路:
1.查询a表的family值,然后分割填充到集合,如:list
2.对list循环,用每个值作为条件去统计B表中的basename
这个问题解决了,那你的问题就解决了
比如a表的cid=1是,你能否将 famliy转换成多行
或者 like 后面加字段名,但是我试过貌似不行,
这是我写的
select a.name,(select count(name) from b where name=a.name) as '统计' from a where cid=1
如果你能将上面的 from a where cid=1 转换成多行的datatable,那么这句话就能实现你所想要的
已近解决了,lz看下这段代码行吗?
select [name],(select COUNT(0) from b where [name]=c.[name]) as 'Count'
from (select distinct [name] from a join b on a.famliy like '%'+b.name+'%' where a.cid=2) c
只需改变a.cid= 多少,就可以根据a表来动态统计b表中的数据