最后30分,急用!高手帮忙!,这样的计算列能否用SQL语句实现 select 房间ID,房间面积,房间总价格 = 房间面积*单价*(select sum(辅助设施单价*辅助设施数量) from B表 where 房间ID = a.房间ID)from A表 a 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select 房间ID,房间面积,房间总价格 = 房间面积 * 单价 + (select sum(辅助设施单价 * 辅助设施数量) from B表 where 房间ID = a.房间ID)from A表 a create table #A(房间ID int,房间面积 int,单价 int)insert #Aselect 1, 100, 2000union select 2, 80, 1800union select 3, 75, 1500create table #B(房间ID int,辅助设施名称 varchar(10),辅助设施数量 int,辅助设施单价 int)insert #Bselect 1, '空调', 2, 5000union select 1, '阳台', 1, 10000union select 2, '空调', 1, 8000union select 3, '阳台', 1, 8000select * from #Aselect * from #Bselect 房间ID,房间面积,房间总价格 = 房间面积 * 单价 + (select sum(辅助设施单价 * 辅助设施数量) from #B where 房间ID = a.房间ID)from #A adrop table #A,#B/*房间ID 房间面积 单价 ----------- ----------- ----------- 1 100 20002 80 18003 75 1500(所影响的行数为 3 行)房间ID 辅助设施名称 辅助设施数量 辅助设施单价 ----------- ---------- ----------- ----------- 1 空调 2 50001 阳台 1 100002 空调 1 80003 阳台 1 8000(所影响的行数为 4 行)房间ID 房间面积 房间总价格 ----------- ----------- ----------- 1 100 2200002 80 1520003 75 120500(所影响的行数为 3 行)*/ 谢谢gmlxf,按你的方法是对的但是将表换成真的项目中的表,就出错了:在包含外部引用的被聚合表达式中指定了多个列。如果被聚合的表达式包含外部引用,那么该外部引用就必须是该表达式中所引用的唯一的一列这什么错阿我的提问中的表是真实表的一部分字段,但是主要的东西没有变啊!? 那一定是你的真实情况的问题了,方法就是这样的。你是否使用了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后面指定。 问题解决了 gmlxf,非常感谢你不厌其烦的回答我的问题。 我是新手,请多关照 请问一条一次清空当前数据库的所有表记录的SQL 问触发器sql 后台用SQL,前台客户端用什么编好啊?VC合适吗? 数据库问题 怎样在保持现有数据不丢失的情况下,减小 *.LDF 文件的大小???在线等!!!急!! 大家请帮忙!自动添加记录! sql插入更新数据的问题! 过来人请指路 求助!!mssql数据库无法运行 access中的自动编号数据类型在sql怎样表示啊? 选择字段的SQL语句问题!!不要显示某个字段.
房间总价格 = 房间面积 * 单价 + (select sum(辅助设施单价 * 辅助设施数量) from B表 where 房间ID = a.房间ID)
from A表 a
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 行)
*/
但是将表换成真的项目中的表,就出错了:
在包含外部引用的被聚合表达式中指定了多个列。如果被聚合的表达式包含外部引用,
那么该外部引用就必须是该表达式中所引用的唯一的一列
这什么错阿我的提问中的表是真实表的一部分字段,但是主要的东西没有变啊!?
select col1,col2,sum(1) from t group by col1
将会出错,必须:
select col1,col2,sum(1) from t group by col1,col2看的出错提示好象是多了列了,就像上面的col2没有在group by后面指定。
gmlxf,非常感谢你不厌其烦的回答我的问题。