现在有两个表
OnlineLog表字段:JID,Role
CurrentTask表字段:CaseNo,JID其中OnlineLog表里每个JID代表一个人,一个人可能有多个Role,这个表按Role插入记录,有几个Role就插几条记录数据举例是:OnlineLog表:
0345 2
0345 4
0345 80416 2
0416 4
1550 81550 2
1550 40328 16CurrentTask表:
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
OnlineLog表字段:JID,Role
CurrentTask表字段:CaseNo,JID其中OnlineLog表里每个JID代表一个人,一个人可能有多个Role,这个表按Role插入记录,有几个Role就插几条记录数据举例是:OnlineLog表:
0345 2
0345 4
0345 80416 2
0416 4
1550 81550 2
1550 40328 16CurrentTask表:
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
解决方案 »
- 如何创建DLL文件
- 打开WEBBROWSER时,怎样读取打开的页面的源文件,相当于“查看->源文件"
- TREEVIEW读取数据库数据分层问题
- 问一下,XP系统自己使用的API函数是放在哪个文件里面的啊~
- 在线播放的问题?
- 能说一下ASP中的ADO访问数据库和Delphi中的ADO访问有什么区别和相同之处。我能适应这些异同吗?
- 协议操作
- 各位大虾我的监控程序(要不停的换文件,写文件)在运行久了后运行其它任何程序时为何出现系统资源不够
- 如何移动delphi中的内容,块移动?
- 关于DbLookupCombobox的问题。
- 一个奇怪的数据输入问题,高分急求请教?
- Window外壳扩展---上下文菜单的一个小问题,在线
我sql不好,帮你顶吧.
(Select OnlineLog.JID,Case when Isnull(CurrentTask,'')='' then 0 else 1 end as C_Count From OnlineLog left join CurrentTask On OnlineLog.JID=CurrentTask.JID) a
Group By a.JID
create table OnlineLog(JID,char(8),Role,char(3))
insert into OnlineLog values('0345','2')
insert into OnlineLog values('0345','4')
insert into OnlineLog values('0345','8')
insert into OnlineLog values('0416','2')
insert into OnlineLog values('0416','4')
insert into OnlineLog values('1550','8')
insert into OnlineLog values('1550','2')
insert into OnlineLog values('1550','4')
insert into OnlineLog values('0328','16')
create table CurrentTask(CaseNo char(10),JID char(8))
insert into CurrentTask values('CaseNo1','0345')
insert into CurrentTask values('CaseNo2','1550')
insert into CurrentTask values('CaseNo3','1550')
insert into CurrentTask values('CaseNo4','0416')
insert into CurrentTask values('CaseNo5','0345')
insert into CurrentTask values('CaseNo6','0416')
insert into CurrentTask values('CaseNo7','0345')
insert into CurrentTask values('CaseNo8','0416')
insert into CurrentTask values('CaseNo9','0345')SQL语句:
select a.JID,isnull(b.caseno,0) from
(select distinct JID from OnlineLog group by JID) a left join
(select JID,count(1) as caseno from CurrentTask group by JID) b
on a.JID=b.JID
结果集如下:
0328 0
0345 4
0416 3
1550 2
Select k.JID,isnull(kk.caseno,0) caseno
From (select jid from OnlineLog group by jid) k
left join (select jid,count(caseno) caseno from CurrentTask ) kk
On k.JID=kk.JID
Select OnlineLog.JID,isnull(count(CurrentTask.caseno),0) From OnlineLog left join CurrentTask On OnlineLog.JID=CurrentTask.JID Group By OnlineLog.JID