2008-sql中怎么在update 中使用聚合函数

问题描述

sql中怎么在update 中使用聚合函数

--将好友超过20的用户等级提高一个级别
select qu.QQID qq号, COUNT(*) 好友总数 from QQUser qu
inner join Relation re on re.QQID=qu.QQID
where RelationStatus=0
group by qu.QQID
having COUNT(*)>20 --此处为了查看数据

update QQUser
set Level=Level+1
where COUNT(*)>20 ,就报错了

解决方案

不能直接像你这样在后面加聚合函数作为条件
解决办法:

update QQUser set Level=Level+1 where (select count(*) from QQUser) > 20
时间: 2024-10-24 02:29:32

2008-sql中怎么在update 中使用聚合函数的相关文章

sqlserver中delete、update中使用表别名和oracle的区别_MsSql

昨天发现程序中数据分析的结果不对,重新进行分析后,原数据仍在,有值的字段被累计.心说,不对啊,是重新生成记录后才分析的啊.难道忘了DELETE了?查代码,发现有删除语句.于是在查询分析器中执行,报错.反复试几次,明白了,Delete From不认表名别名!回头想下,当初程序改完后主要是在Oracle中测的,SQLServer一直没细测. 之所以要用别名,是因为where条件中需要用到子查询写一些条件,下面不写那么复杂,仅说明一下问题. 结论: (ORACLE适用)    DELETE FROM

sqlserver中delete、update中使用表别名和oracle的区别

昨天发现程序中数据分析的结果不对,重新进行分析后,原数据仍在,有值的字段被累计.心说,不对啊,是重新生成记录后才分析的啊.难道忘了DELETE了?查代码,发现有删除语句.于是在查询分析器中执行,报错.反复试几次,明白了,Delete From不认表名别名!回头想下,当初程序改完后主要是在Oracle中测的,SQLServer一直没细测. 之所以要用别名,是因为where条件中需要用到子查询写一些条件,下面不写那么复杂,仅说明一下问题. 结论: (ORACLE适用)    DELETE FROM

SQL Server 2008 R2——ROW_NUMBER() 去掉不同行中相同列的重复内容

原文:SQL Server 2008 R2--ROW_NUMBER() 去掉不同行中相同列的重复内容 ==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完整性. 未经作者同意请勿修改(包括本声明),保留法律追究的权利. 未经作者同意请勿用于学术性引用. 未经作者同意请勿用于商业出版.商业印刷.商业引用. 本文不定期修正完善,为保证内容正确,建议移步原

实战SQL语句收集(不断更新中--)

语句 实战SQL语句收集(不断更新中--) 前言:这里将我编程实践中遇到的有价值的sql语句一路记下来,一方面方便自己查用,一方面也夯实下即将遗忘的回忆.整个过程中我会不断更新,直到不能再加为止,同时,这里只记录最实用的咚咚,不效仿学院派的那一套. 一.常用SQL语句荟萃 1,查询: 1.1,简单查询:select * from table where   1.2,连接查询: 什么是连接查询?顾名释义,就是查询时涉及多个表的查询.是以说到连接,废话一下,要知道连接还是关系数据库的主要特点呢. 连

SQL存储过程在.NET数据库中的应用

存储过程|数据|数据库 一.前言: 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程.总的来说,存储过程具有以下一些优点: ◆存储过程允许标准组件式编程 ◆存储过程能够实现较快的执行速度 ◆存储过程能够减少网络流量 ◆存储过程可被作为一种安全机制来充分利用 本文作者将向大家介绍.NET

sql-SQL server 2008 查询,根据其他表中的字段排序???

问题描述 SQL server 2008 查询,根据其他表中的字段排序??? 如图,根据表B中的部门编号对表A进行排序,..如何写sql啊?? 解决方案 select a.name,b.depart from tableA a left join tableB on a.depart=b.depart order by b.num desc 解决方案二: select a.name,b.depart from tableA a left join tableB b on a.depart=b.d

c#-C#中数据库删除按钮中在下面update语句中显示数据库查询过于复杂

问题描述 C#中数据库删除按钮中在下面update语句中显示数据库查询过于复杂 string connstr = "Provider=Microsoft.Jet.OleDb.4.0;"; connstr += @"Data Source=GEARCNC.mdb"; OleDbConnection tempconn = null; try { if (MessageBox.Show("确定删除这一项吗?", "confirm Messag

SQL触发器在插入记录中根据A字段自动给B字段赋值

问题描述 SQL触发器在插入记录中根据A字段自动给B字段赋值 假如我有一个人员信息表,表的字段结构如下: 姓名 性别 性别值 性别字段,如果为男,性别值为0: 性别字段,如果为女,性别值为1: 性别字段,如果为中性,性别值为3: 在插入记录的时候,只会插入 姓名和性别两个字段.现在想要通过触发器来自动填充后面一个'性别值'字段. 这个如何实现呢?求指导.插入的时候,可能一次性插入多条记录. (MSSQL 2008数据库) 解决方案 sqlserver貌似是不支持oracle的for each r

sqlserver2008-各位大神,请问sql的两个事务中的select如何能导致死锁

问题描述 各位大神,请问sql的两个事务中的select如何能导致死锁 捕获的trace日志非常大,我先放下出错的两条语句. sqlserver profiler捕获的是这样一条错误. 我想知道的是明明是两条select,S锁为何会导致死锁.而且死锁图形中的的排它锁是怎么回事,明明对keeping的这个资源没有update,只有delete,delete也会增加排它锁吗?行级的,还是表级的,为何我在prfiler中 捕获update或者delete时mode列没有提示锁? 问的有点多,请先看下图