问题:表A(队员表),字段
FNo varchar(20) 队员编号
FName varchar(20) 队员名字
表B(比赛记录表),字段
FDate datetime 比赛时间
FANo varchar(20) 队员A编号(与表A的FNo对应)
FResult varchar(20) 比赛结果
FBNo varchar(20) 队员B编号(与表A的FNo对应)每个队员既可能在FANo出现,也可能在FBNo出现,如何用语句统计出每个队员参加比赛的次数,不用游标可以不?
FNo varchar(20) 队员编号
FName varchar(20) 队员名字
表B(比赛记录表),字段
FDate datetime 比赛时间
FANo varchar(20) 队员A编号(与表A的FNo对应)
FResult varchar(20) 比赛结果
FBNo varchar(20) 队员B编号(与表A的FNo对应)每个队员既可能在FANo出现,也可能在FBNo出现,如何用语句统计出每个队员参加比赛的次数,不用游标可以不?
from
(
select 队员编号,count(*) 次数
(
select 队员A编号 as 队员编号 from tbb
union all
select 队员B编号 as 队员编号 from tbb
) m
group by 队员编号
) a
join tba b
on a.队员编号=b.队员编号
declare table @t(FNo varchar(20))
select FANO
from B
union
select FBNO
from Bselect FNO,count(FNO) as cishu
from @t
group by FNO兄弟,这个我保证正确,只不过是简化了点,剩下的自己添加上。可以结贴,给我分了,呵呵。
--tryselect a.fno,a.fname,sum(acount) as acount
(
(select a.fno,a.fname ,acount =(select count(fano) from b where fno = a.fano as acount ) from a
union all
select a.fno,a.fname ,acount =(select count(fbno) from b where fno = a.fbno as acount ) from a
)
)a
group by a.fno,a.fname