Sql sever 分组排序
维护人事的时候人事局要求加入一个新功能,详细需求例如以下:加入的人员在同一个单位的依照顺序编号而且单位也要实现时间排序,也就是说有两个排序,第一单位名称排序。先创建的一直在前。然后依照创建时间依次排序,第二人员排序。每一个单位的人依照一定的编码进行排序。这里听了师哥的建议採用的是给每一个新加的单位独立编号,比方第一个创建的单位是1,然后依次是2、3、4···这样就能非常好的排序啦。这里我针对要操作的表新建了一个触发器。以此来实现这个功能。详细代码与说明例如以下。
--=============================================
--Author: 徐凤竹
-- Create date:2015年7月7日16:10:04
--Description: 插入数据时查看是否存在该单位名称,没有则加入单位名称,实现分组查看
--=============================================
ALTER TRIGGER[dbo].[trg_addoutstanding]
ON [dbo].[T_OutstandingDispatch]
AFTER INSERT,UPDATE
AS
declare
@myID varchar(50),
@mycompany varchar(50),
@mygroupid bigint,
@sum bigint,
@maxnum bigint
--在新插入内容中获取档案编号,单位名称
select @myID=number,@mycompany=companyName frominserted
if update(companyName)
BEGIN
--在表中查看有同样单位名称的记录总数
select@sum=COUNT(*) from T_OutstandingDispatch where companyName =@mycompany
--查询表中最大的组号,以便为新单位编组号
select@maxnum=MAX(groupID) from T_OutstandingDispatch
--查询同样单位的组号(存在)。以便为新单位编组号
selecttop 1 @mygroupid=groupID fromT_OutstandingDispatch where companyName =@mycompany
--假设有同样单位名称的记录大于1(排除自身),则给新单位赋予同样组号。否则按序编写新组号
if(@sum>1)
updateT_OutstandingDispatch setgroupID=@mygroupid where number =@myID
else
updateT_OutstandingDispatch setgroupID=@maxnum+1 where number =@myID
END
Sql sever 分组排序的更多相关文章
- SQL语句分组排序,多表关联排序
SQL语句分组排序,多表关联排序总结几种常见的方法: 案例一: 在查询结果中按人数降序排列,若人数相同,则按课程号升序排列? 分析:单个表内的多个字段排序,一般可以直接用逗号分割实现. select ...
- 一条Sql语句分组排序并且限制显示的数据条数
如果我想得到这样一个结果集:分组排序,并且每组限定记录集的数量,用一条SQL语句能办到吗? 比如说,我想找出学生期末考试中,每科的前3名,并按成绩排序,只用一条SQL语句,该怎么写? 表[TScore ...
- sql sever分组查询和连接查询
分组查询select 查询信息 from 表名where 条件group by 按照列分组(可多个 ,隔开)order by 排序方式(查询信息如果列名和聚合函数同时出现,要么在聚合函数中出现,要么就 ...
- SQL之分组排序取top n
转自:http://blog.csdn.net/wguangliang/article/details/50167283 要求:按照课程分组,查找每个课程最高的两个成绩. 数据文件如下: 第一列no为 ...
- sql server 分组排序
环境: sql server 2012 语法 select ROW_NUMBER() over(partition BY 分组字段 order by 排序字段),* as rowNums from 表 ...
- sql语句分组/排序/计算总数/连接等sql语句书写
1.什么是表连接? 答:比如两张表,要获取的信息来自两张表,就需要通过外键的形式进行两张表的连接.最后产后组合信息. 表连接是通过join连接的.表连接说白了就是产生一个大表.表连接也都是用于查询上的 ...
- mysql分组排序加序号(不用存储过程,就简简单单sql语句哦)
做前端好长时间了,好久没动sql了.在追一个喜欢的女孩,做测试的,有这么个需求求助与本屌丝,机会难得,开始折腾起来,配置mysql,建库,建表.... 一 建表 CREATE TABLE `my_te ...
- SQL分组排序后取每组最新一条数据的另一种思路
在hibernate框架和mysql.oracle两种数据库兼容的项目中实现查询每个id最新更新的一条数据. 之前工作中一直用的mybatis+oracle数据库这种,一般写这类分组排序取每组最新一条 ...
- sql server 中判断分组排序的使用示例
现在需要查询一组数据,是对一列字段(column01)的数据分范围查询后分组排序: select (case when [column01] >0 AND [column01]<= 500 ...
随机推荐
- maven构建springmvc项目
1.Eclipse中 NEW ->OTHER->Maven->maven project 2.选择项目路径 3.选择项目类型->next->输入groupid和artif ...
- kafka 理论学习
http://blog.csdn.net/paul342/article/details/50479491 kafka基本知识.
- jenkins 提示No emails were triggered
发送邮件 Jenkins->系统管理->系统设置,在“邮件通知”里设置smtp服务器地址,以及发送者邮箱地址,在具体的任务构建完成以后,可以设置发送邮件,在某一个任务的"Add ...
- DBCA建库出错ORA-00600: internal error code, arguments
正常步骤安装完成Oralce,通过dbca建库,报错如下图所示: Oracle安装日志中报错如下: [Thread-40] [ 1999-12-15 12:23:54.055 CST ] [Basic ...
- HDU1711 最基础的kmp算法
Problem Description Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], .... ...
- hdu 1689 求奇环bfs关键是层次图
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<queue> usin ...
- 【POJ1149&BZOJ1280】PIGS(最大流)
题意:Emmy在一个养猪场工作.这个养猪场有M个锁着的猪圈,但Emmy并没有钥匙. 顾客会到养猪场来买猪,一个接着一个.每一位顾客都会有一些猪圈的钥匙,他们会将这些猪圈打开并买走固定数目的猪. 所有顾 ...
- 转 蓝桥杯 历届试题 波动数列 [ dp ]
传送门 历届试题 波动数列 时间限制:1.0s 内存限制:256.0MB 锦囊1 锦囊2 锦囊3 问题描述 观察这个数列: 1 3 0 2 -1 1 -2 ... 这个 ...
- Linux MTD (Memory Technology Device) subsystem analysis -For Atheros char device
Linux MTD (Memory Technology Device) subsystem analysis For Atheros char device 读了Linux MTD 源代码分析 对这 ...
- DELL IDRAC API接口开发文档翻译及client模块
今天和DELL官网要了一份关于服务器IDRAC 版本7/8 的API开发文档,花了一天的时间,进行了翻译,不一定全部准确,但对于英语不好的人会有所帮助.也不用重复造轮子了.下载链接: IDRAC AP ...