当前位置: 代码迷 >> Sql Server >> sql对比查询单行合计的有关问题
  详细解决方案

sql对比查询单行合计的有关问题

热度:96   发布时间:2016-04-24 09:42:30.0
sql对比查询单行合计的问题
sql对比查询,请问各位大侠怎么该怎么写!

表一
用户ID  姓名
1       张三
2       李四
3       王二
4       小强

表二
客户ID   客户名称    用户ID 
1   奥迪修理厂   1
2   捷达专修       2
3   微星专修       3
4   引航修理厂   3
5   大众修理厂   3
想要结果是
用户ID  姓名     合计
1       张三      1
2       李四      1
3       王二      3
4       小强      0


------解决思路----------------------

select a.[用户ID],a.[姓名],isnull(count(b.[客户ID]),0) as [合计]
from [表一] a
left join [表二] b
on a.[用户ID]=b.[用户ID]
group by a.[用户ID],a.[姓名]

------解决思路----------------------
引用:
Quote: 引用:

条件的逻辑问题,应该这样,给or们加个括号
select a.[id],a.[xingming],isnull(count(b.[kehuID]),0) as [合计]
from [Sys_Userinfo] a
left join [Ribaobiao_Record] b
on a.[id]=b.[luruname_userid]
WHERE
(a.UserDept='1014' OR a.UserDept='1015' OR a.UserDept='1016' OR a.UserDept='1017' OR a.UserDept='1019' OR a.UserDept='1020')AND b.add_date>='2014-10-01' AND b.Add_date<'2014-11-01'
group by a.[id],a.[xingming]
日期如果有包含时间的话,建议弄成小于下一天


为什么加上时间条件以后 合计为0的数据就不显示了呢 把时间条件去掉就可以了
select a.[id],a.[xingming],isnull(count(b.[kehuID]),0) as [合计]
from [Sys_Userinfo] a
left join [Ribaobiao_Record] b
on a.[id]=b.[luruname_userid] AND b.add_date>='2014-10-01' AND b.Add_date<'2014-11-01'
WHERE
(a.UserDept='1014' OR a.UserDept='1015' OR a.UserDept='1016' OR a.UserDept='1017' OR a.UserDept='1019' OR a.UserDept='1020')
group by a.[id],a.[xingming]
因为,需要加到左连接上才行
  相关解决方案