???请教一个难的统计sql写法???(100分)

D

drmy

Unregistered / Unconfirmed
GUEST, unregistred user!
现在有两个表
OnlineLog表字段:JID,Role
CurrentTask表字段:CaseNo,JID
其中OnlineLog表里每个JID代表一个人,一个人可能有多个Role,这个表按Role插入记录,有几个Role就插几条记录
数据举例是:
OnlineLog表:
0345 2
0345 4
0345 8
0416 2
0416 4
1550 8
1550 2
1550 4
0328 16
CurrentTask表:
CaseNo1 0345
CaseNo2 1550
CaseNo3 1550
CaseNo4 0416
CaseNo5 0345
CaseNo6 0416
CaseNo7 0345
CaseNo8 0416
CaseNo9 0345
我想得到这样的查询结果,就是OnlineLog里面有的JID以及对应的CurrentTask表里这个JID的CaseNo个数,比如下面的结果:
0345 4
0416 3
1550 2
0328 0
我写的sql总是不能把“0328 0”这条数据打印出来,请问怎么写?
我写的sql是:
Select OnlineLog.JID,count(CurrentTask.caseno) From OnlineLog left join CurrentTask On OnlineLog.JID=CurrentTask.JID Group By OnlineLog.JID
 
用left outer join
 
tseug ,不管用,还是老样子
 
这样写吧:
Select A.JID,(select count(caseno) From CurrentTask where JID=A.JID ) as CaseCount
From OnlineLog A
 
奇怪的是我发现这个sql在sqlserver2000下就对,在infomix下不对,出不来caseno的count为0的记录。
真的有这个差别?
 
各位,因为我的这个sql要用在Infomix数据库中,用我自己那个sql出不来count为0的记录数,但是在SqlServer 2000中就完全正确。请问这是什么原因?各位给的答案我回去试试的
 
能不能不用子查询,更快查询速度的方法有吗?
 
接受答案了.
 

Similar threads

回复
0
查看
853
不得闲
S
回复
0
查看
744
SUNSTONE的Delphi笔记
S
顶部