select 单位号,单位名称,sum(油耗数) 
from U,C,O
where C.单位号=U.单位号 and O.车号=C.车号
group by U.单位号,U.单位名称

解决方案 »

  1.   

    select U.un as 单位名称 , sum(O.OH) as 油耗数 from U inner join C on U.U#=C.U# 
    inner join O on O.C#=C.C#
    group by 单位名称
      

  2.   

    1.U(U#,UN) U#,UN分别代表单位号、单位名称;
    2.C(C#,U#,CN)C#,U#,CN分别代表车号,单位号,车辆名称;
    3.O(C#,OH)C#,OH分别代表车号,油耗数。
    select U.UN,O.OH 
    from U join C on U.U#=C.U# join O on C.C#=O.C#
    group by U.U#
      

  3.   

    declare @U table([单位号] varchar(10),[单位名称] varchar(20))
    declare @C table([车号] int,[单位号] varchar(10),[车辆名称] varchar(20))
    declare @O table([车号] int,[油耗数] int)insert @U
    select '001','北京顺大贸易' union
    select '002','天津国顺二厂' union
    select '003','北京东方红汽车厂'insert @C
    select 1,'001','奔驰1' union
    select 2,'002','奔驰2' union
    select 3,'001','奔驰3'insert @O
    select 1,1000 union select 2,3000 union select 2,2000select U.*,[耗油数]=isnull(sum(O.[油耗数]),0)
    from @U U left join @C C on U.[单位号]=C.[单位号]
           left join @O O on C.[车号]=O.[车号]
    group by U.[单位号],U.[单位名称]--结果
    /*
    单位号        单位名称                 耗油数         
    ---------- -------------------- ----------- 
    003        北京东方红汽车厂             0
    001        北京顺大贸易               1000
    002        天津国顺二厂               5000
    */
      

  4.   

    Select u.单位名称,u.单位号,sum(u.油号数)From u,c,o 
    Where u.单位号=c.单位号 And c.车号=o.车号 group By U.单位名称,U.单位号