select 房间ID,房间面积,
房间总价格 = 房间面积*单价*(select sum(辅助设施单价*辅助设施数量) from B表 where 房间ID = a.房间ID)
from A表 a

解决方案 »

  1.   

    select 房间ID,房间面积,
    房间总价格 = 房间面积 * 单价 + (select sum(辅助设施单价 * 辅助设施数量) from B表 where 房间ID = a.房间ID)
    from A表 a
      

  2.   

    create table #A(房间ID int,房间面积 int,单价 int)
    insert #A
    select  1,       100,      2000
    union select 2,       80,       1800
    union select 3,       75,      1500create table #B(房间ID int,辅助设施名称 varchar(10),辅助设施数量 int,辅助设施单价 int)
    insert #B
    select  1,       '空调',         2,            5000
    union select  1,       '阳台',         1,            10000
    union select  2,       '空调',         1,            8000
    union select  3,       '阳台',         1,            8000select * from #A
    select * from #B
    select 房间ID,房间面积,
    房间总价格 = 房间面积 * 单价 + (select sum(辅助设施单价 * 辅助设施数量) from #B where 房间ID = a.房间ID)
    from #A adrop table #A,#B/*房间ID        房间面积        单价          
    ----------- ----------- ----------- 
    1           100         2000
    2           80          1800
    3           75          1500(所影响的行数为 3 行)房间ID        辅助设施名称     辅助设施数量      辅助设施单价      
    ----------- ---------- ----------- ----------- 
    1           空调         2           5000
    1           阳台         1           10000
    2           空调         1           8000
    3           阳台         1           8000(所影响的行数为 4 行)房间ID        房间面积        房间总价格       
    ----------- ----------- ----------- 
    1           100         220000
    2           80          152000
    3           75          120500(所影响的行数为 3 行)
    */
      

  3.   

    谢谢gmlxf,按你的方法是对的
    但是将表换成真的项目中的表,就出错了:
    在包含外部引用的被聚合表达式中指定了多个列。如果被聚合的表达式包含外部引用,
    那么该外部引用就必须是该表达式中所引用的唯一的一列
    这什么错阿我的提问中的表是真实表的一部分字段,但是主要的东西没有变啊!?
      

  4.   

    那一定是你的真实情况的问题了,方法就是这样的。你是否使用了group by如果使用了,那么如:
    select col1,col2,sum(1) from t group by col1
    将会出错,必须:
    select col1,col2,sum(1) from t group by col1,col2看的出错提示好象是多了列了,就像上面的col2没有在group by后面指定。
      

  5.   

    问题解决了 
    gmlxf,非常感谢你不厌其烦的回答我的问题。