select PeopleName,
(select Count(*) from WaitVisitInfo_VisitDetail where
Name in (PeopleName)) as OprtCount from Oprt_Info a left join WaitVisitInfo_VisitDetail b on a.Oprt_ID = b.WVI_TaskOprtID
把PeopleName 做为 后边统计数量的条件,该如何实现?
(select Count(*) from WaitVisitInfo_VisitDetail where
Name in (PeopleName)) as OprtCount from Oprt_Info a left join WaitVisitInfo_VisitDetail b on a.Oprt_ID = b.WVI_TaskOprtID
把PeopleName 做为 后边统计数量的条件,该如何实现?
select OprtName,(select count(*) from tableC where Name = OprtName) as OprtCount
tableA a left join tableB on tableA.ID = tableB.IDName 字段中有多个值以逗号形式分开,例如:张三,李四,王五 这样的
这该如何处理呢?
select OprtName,(select count(*) from tableC where Name = OprtName) as OprtCount
tableA a left join tableB on tableA.ID = tableB.IDtableC 中的Name字段可以存多个值就是我刚才说的那些,这该筛选和处理呢,求助。
tableA a left join tableB on tableA.ID = tableB.ID这条语句能否实现?求助各位了。
OprtName,
count(*)
from
tableC
group by
OprtName
最后筛选结果为 筛选出的姓名,和从C表中根据姓名查询得到的数量。
1 张三
2 李四,王五
3 赵六,陈七,马八
这就不能在用Group 了吧?
From tableA a left join tableB on tableA.ID = tableB.ID
where [Name] in (select OprtName from tableA a left join tableB on tableA.ID = tableB.ID )至于你说的多个姓名,没太明白具体的表结构,因为牵扯三个表
tmp.name,
count(×)
from
(select a.name from tableA a left ion tableB b on a.Id = b.Id) tmp
join
tableC c
on
charindex(tmp.name, c.name) > 0
group by
tmp.name是不是这个意思?
select OprtName,(select count(*) from tableC where charindex(a.OprtName, Name) > 0) as OprtCount
From tableA a left join tableB on tableA.ID = tableB.ID
结果出来给我点分哦,来挣分的哦...
select OprtName,(select count(*) from tableC where Name in (OprtName)) as OprtCount
tableA a left join tableB on tableA.ID = tableB.IDtableA 是一个基础表,里面存储所有的人员姓名。
tableC 是一个人员做单据的记录表。
tableB 是tableC下的一个表。tableC中的一条记录可以对应tableB 中多条记录
我的目的就是为了,筛选出 tableA 所有人员所做单据的数量。===============================================
tableA 表结构大致为:ID Name
1 张三
2 李四
3 王五
tableC 表结构大致为:
TaskID OprtID Name
100001 1,2 张三,李四
100002 2,3 李四,王五
100003 1,2,3 张三,李四,王五tableB 表结构大致为:
ID TaskID OprtID Name
1 100001 1 张三
2 100001 2 李四
3 100002 2 李四
4 100002 3 王五
5 100003 1 张三
6 100003 2 李四
7 100003 3 王五
===============================================
而他们的关系比较复杂,
tableC 中的Name字段 可以有多个人员姓名
最后结果想要这种:姓名 tableC数量 tableB数量
张三 5 10
李四 4 17
王五 3 18
===============================================
各位同仁可以讨论下,看能否实现。
A.name
count(B.Id),
count(C.TaskId)
from
A
left join B on A.Id = B.OprtId
left join C on charindex(A.Id, C.OprtId) > 0
group by
A.name那个Id如果不是字符的话可能需要类型转换
select a.Name,count(distinct c.taskid)tableC数量,count(distinct b.id)tableB数量 from tba a left join tbb b on
a.id=b.oprtid join tbc c on charindex(','+b.name+',',','+replace(c.name,',',',')+',')>0 group by a.name
a.id=b.oprtid left join tbc c on charindex(','+b.name+',',','+replace(c.name,',',',')+',')>0 group by a.name
(Select count(1) as [tablec数据] From tablec WHere (","+ name +",") like ("%,"+a.name +",%")),
(Select count(1) as [tableb数据] From tableb WHere name=a.name)
From tablea a如果tablec的name为ntext\text\nvarchar(max)就得考虑用全文索引了CONTAINS(name,a.name)