当前位置: 代码迷 >> Sql Server >> 查询数据有关问题,多谢各位帮忙看看
  详细解决方案

查询数据有关问题,多谢各位帮忙看看

热度:26   发布时间:2016-04-24 10:35:45.0
查询数据问题,谢谢各位帮忙看看!
在进行数据查询的时候遇到了一点问题,大家帮我看一下!
表1   一级部门表:存的数据是一级部门名称  
表2   部门表:存的数据是二级部门名称,其中有字段 所属一级部门
表3   预算表:存的数据是各个二级部门的预算
我现在想在预算表中查出同属于一个一级部门的二级部门的预算值,但是这个项目并不是所有二级部门都有,我用的语句是
SELECT 部门名, SUM(实际集中采购 + 实际零星支付)
FROM 预算表
WHERE (部门名 IN
          (SELECT 部门名称
         FROM 部门表
         WHERE 所属一级部门 =‘一级’)) AND (项目名称='项目')
GROUP BY 部门名
但是这样没有这个项目的部门就被删去了,我想获得的结果是如果没有这个项目,查出来的SUM填0,不知道这个能否实现呢?谢谢各位了,帮忙看看!


------解决方案--------------------
SELECT A.部门名, ISNULL(SUM(实际集中采购 + 实际零星支付),0)
FROM 部门表 AS A
LEFT JOIN 预算表 AS B ON A.部门ID=B.部门ID
WHERE A.所属一级部门 ='一级' AND B.项目名称='项目'
------解决方案--------------------
引用:
SELECT A.部门名, ISNULL(SUM(实际集中采购 + 实际零星支付),0)
FROM 部门表 AS A
LEFT JOIN 预算表 AS B ON A.部门ID=B.部门ID
WHERE A.所属一级部门 ='一级' AND B.项目名称='项目'

SELECT A.部门名, ISNULL(SUM(实际集中采购 + 实际零星支付),0)
FROM 部门表 AS A
LEFT JOIN 预算表 AS B ON A.部门ID=B.部门ID AND B.项目名称='项目'
WHERE A.所属一级部门 ='一级'
------解决方案--------------------
引用:
这样我没有这个项目的部门还是被删掉了呢!

他粗心了,稍微改动下

SELECT A.部门名, ISNULL(SUM(实际集中采购 + 实际零星支付),0)
FROM 部门表 AS A
LEFT JOIN 预算表 AS B ON A.部门ID=B.部门ID AND B.项目名称='项目'
WHERE A.所属一级部门 ='一级' 

  相关解决方案