只有出现在GROUP By子句中的属性才能与聚合操作并列出现在SELECT子句中。是不是因为这个?
解决方案 »
- 请教下我这张表格该如何设计,或者增加什么约束条件?
- SQL SERVER 2005 提示 对象名 'MASTER.DBO.SYSSERVERS' 无效
- 请教关于内联表型自定义函数的问题?
- SQL 根据表1和表2 找出表1的数值不包括表2的数值
- ADO的Recordset效率问题
- 在SQL中,用户表查询出错
- 一个简单的存储过程
- 求助一条查询sql
- SQL2005单表数据修改后如何恢复啊。
- 使用ado+Sql Server,为什么在本机可以联接,到局域网的客户机上不能联接???继续加分!!
- TRIGGER技术挑战!!!
- 请问:建表时的“PRIMARY KEY”约束和“UNIQUE”约束有哪些不同啊?
使用了group by之后时无法使用update的,数据库将无法确定对哪些纪录进行更新。当然group by可以出现在子查询中
我不知道你用的是什么数据库,如果在oracle中可以这么写:
假定表 t_salary (emp_no, dept_no, salary)
update t_salary x
set salary = (select x.salary + avg(y.salary)
from t_salary y
where y.dept_no = x.dept_no);
set salary = salary +0.5*(
select avg(y.salary)
from t_salary y
where y.dept_no = x.dept_no)
where worksite='上海' or worksite='深圳';
update t_salary
set salary = x.salary +0.5*y.avgsalary
from t_salary x,(
( select dept_no,avg(salary) as avgsalary
from t_salary group by dept_no) as y
where x.dept_no=y.dept_no and
(x.worksite='上海' or x.worksite='深圳')