SELECT RECORD.[RECORD_ID]
,RECORD.[WORKFLOW_INFO_ID]
,RECORD.[FORM_CODE]
,RECORD.[APPLY_DATE]
,RECORD.[APPLY_EMP_ID]
,RECORD.[APPLY_EMP_NUMBER]
,RECORD.[APPLY_EMP_NAME_EN]
,RECORD.[APPLY_EMP_NAME_CN]
,RECORD.[APPLY_EMP_EMAIL]
,RECORD.[APPLY_EMP_PHONE]
,RECORD.[APPLY_EMP_MOBILE]
,RECORD.[APPLY_EMP_POSITION_CN]
,RECORD.[APPLY_EMP_POSITION_EN]
,RECORD.[APPLY_EMP_WORK_OFFICE]
,RECORD.[APPLY_EMP_WORK_AREA_CODE]
,RECORD.[APPLY_EMP_DEPT_CODE]
,RECORD.[APPLY_EMP_DEPT_TYPE]
,RECORD.[APPLY_EMP_DEPT_IS_FUNCTIONAL]
,RECORD.[APPLY_EMP_DEPT_NAME_CN]
,RECORD.[APPLY_EMP_DEPT_NAME_EN]
,RECORD.[APPLY_EMP_DEPT_FUNC_CODE]
,RECORD.[APPLY_EMP_DEPT_FUNC_CN]
,RECORD.[APPLY_EMP_DEPT_FUNC_EN]
,RECORD.[FILLER_EMP_ID]
,RECORD.[FILLER_EMP_NUMBER]
,RECORD.[FILLER_EMP_NAME_EN]
,RECORD.[FILLER_EMP_NAME_CN]
,RECORD.[FILLER_EMP_EMAIL]
,RECORD.[FILLER_EMP_PHONE]
,RECORD.[FILLER_EMP_MOBILE]
,RECORD.[FILLER_EMP_POSITION_CN]
,RECORD.[FILLER_EMP_POSITION_EN]
,RECORD.[FILLER_EMP_WORK_OFFICE]
,RECORD.[FILLER_EMP_WORK_AREA_CODE]
,RECORD.[FILLER_EMP_DEPT_CODE]
,RECORD.[FILLER_EMP_DEPT_TYPE]
,RECORD.[FILLER_EMP_DEPT_IS_FUNCTIONAL]
,RECORD.[FILLER_EMP_DEPT_NAME_CN]
,RECORD.[FILLER_EMP_DEPT_NAME_EN]
,RECORD.[FILLER_EMP_DEPT_FUNC_CN]
,RECORD.[FILLER_EMP_DEPT_FUNC_EN]
,RECORD.[FILLER_EMP_DEPT_FUNC_CODE]
,EMP.APPROVE_EMP_ID
,EMP.APPROVE_TYPE
,EMP.EMP_NAME_CN
,EMP.EMP_NAME_EN
,EMP.EMP_NUMBER
,EMP.SOURCE_EMP_NAME_CN
,EMP.SOURCE_EMP_NAME_EN
,EMP.SOURCE_EMP_NUMBER
,Activity.ACTIVITY_NAME --活动名称
,Activity.MEETING_CATEGORY_NAME
,Activity.MEETING_CATEGORY_CODE
,Activity.ACTIVITY_JOIN_NUMBER
,Activity.START_TIME
,Activity.FINISH_TIME
,Activity.FEE
,Activity.[ACTIVITY_REGION_NAME]
,CASE WHEN(EMP.WF_ACTIVITY_NAME IS NULL) THEN
(CASE
WHEN(RECORD.RECORD_STATUS=0) THEN 'Draft'
WHEN(RECORD.RECORD_STATUS=2) THEN 'Completed'
WHEN (RECORD.RECORD_STATUS=4) THEN 'Circulation'
WHEN (RECORD.RECORD_STATUS=5) THEN 'Cancelled'
WHEN (RECORD.RECORD_STATUS=7) THEN 'Suspend' ELSE 'Unknown' END)
ELSE EMP.WF_ACTIVITY_NAME END AS CURRENT_ACTIVITY_NAME
FROM [dbo].[TSTB_COM_MS_ITEM_RECORD] RECORD
LEFT JOIN [dbo].FUN_MS_GetActivityInfo() Activity
ON RECORD.RECORD_ID = Activity.RECORD_ID
LEFT JOIN
(SELECT * , ROW_NUMBER() OVER (PARTITION BY RECORD_ID ORDER BY CREATE_DATE ) AS RN FROM [dbo].[TSTB_COM_ITEM_RECORD_APPROVE_EMP] WHERE STATUS=1 AND APPROVE_TYPE<>2 AND WORKFLOW_PREFIX='MS')
AS EMP ON RECORD.RECORD_ID=EMP.RECORD_ID AND EMP.RN=1
WHERE RECORD.STATUS=1 and RECORD.RECORD_STATUS<>5

sqlserver 用 RowNumber 分组的更多相关文章

  1. sqlserver 存储过程 递归查询分组+hierarchyid重建会员关系

    CREATE PROCEDURE [dbo].[GetGroupInfo] @s_code NVARCHAR() = --会员卡号 AS BEGIN declare @p int; --查询唯一性结果 ...

  2. MySQL数据中分级分组显示数据

    前面已经有了SqlServer数据分级分组显示数据了.今天又来做一个MySQL数据库中的分级分组显示,SqlServer中用到了递归,这里为了简单就直接把根的数据显示为0 ,而不用递归了. 在MySQ ...

  3. 【.net core 入坑】.net core 3.0 报错:在 FETCH 语句中选项 NEXT 的用法无效

    目录 1.事故现场: 2.分析及解决方案: 1.事故现场: 在项目中使用.net core 3.0,在EF链接sqlserver2008,在程序中使用了分页用的skip和take,程序报错: 在 FE ...

  4. ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)用法,先分组,然后在组内排名,分组计算,主表与附表一对多取唯一等

    ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)用法 今天在使用多字段去重时,由于某些字段有多种可能性,只需根据部分字段进行去重,在网上看到了row ...

  5. SQLSERVER中按年月分组

    SQLSERVER中按年月分组 一个表有三个字段id,dt,d  分别存放id,时间,数值  id    dt    d 1 2004-08-11 12:12:00.000 9  2 2005-09- ...

  6. SQLServer 分组查询相邻两条记录的时间差

    原文:SQLServer 分组查询相邻两条记录的时间差 首先,我们通过数据库中表的两条记录来引出问题,如下图 以上为一个记录操作记录的表数据.OrderID为自增长列,后面依次为操作类型,操作时间,操 ...

  7. SqlServer 对分组的内容进行拼接-group_concat

    SqlServer  对分组的内容进行拼接: 方案1:xml 子集,性能较差 方案2:借助 sqlCLR 接入.实现group_concat.性能完美,但是 阿里云的不支持!!!! CREATE TA ...

  8. MYSQL-实现分组排序 对比 ORACLE 和SQLserver用 row_number() over(partition by ) 分组排序功能

    以下是个人笔记: 本文是为了理解 row_number() over(partition by )  和实现各种数据库的分组排序功能 select ROW_NUMBER()over( partitio ...

  9. SQLServer 行转列,统计,二次分组

    create table test (   bizdate datetime, --日期   classes varchar(50), --班次 '白班' 或 '夜班'   qty int --产量 ...

随机推荐

  1. Java空白final

    Java 1.1允许我们创建"空白final",它们属于一些特殊的字段.尽管被申明为final,但却未得到一个初始值. 无论在哪种情况下,空白final都必须在实际使用前得到正确的 ...

  2. css对齐

    2016-10-25 <css入门经典>第15章 1.text-align属性: 块属性内部的文本对齐方式.该属性只对块盒子有意义,内联盒子的内容没有对齐方式.(注意:只是盒子内部的内容对 ...

  3. Mongodb的备份,恢复,导入与导出(cmd命令行实现)

    要用MongoDB,自然就要用到数据导入导出,就自己学习了一下. 在Mongo学习(二)中就讲到了在bin目录下有一些工具,本篇就是使用这些工具进行数据的导入导出及备份恢复. 注意:以下命令均在cmd ...

  4. Nmap源码分析(脚本引擎)

    Nmap提供了强大的脚本引擎(NSE),以支持通过Lua编程来扩展Nmap的功能.目前脚本库已经包含300多个常用的Lua脚本,辅助完成Nmap的主机发现.端口扫描.服务侦测.操作系统侦测四个基本功能 ...

  5. html框架—多对话框(相同id)处理

    一个网站的数据大多数都是异步刷新的,这没什么好说的,然后现在很多前后端框架,大家都知道框架很好用,不用自己写样式,只要利用框架上的语法就能做出漂亮的动态的效果来,而用框架的话大多数的动态效果都是动态生 ...

  6. 利用Dreamweaver配置PHP服务器的站点

    配置的步骤: 1.打开Dreamweaver的站点------->新建站点-------->点击保存 2.点击服务器------>保存 3.配置完成之后就可以看到在Dreamweav ...

  7. Swift tour

    输出函数: print(“hello world!") 无需引入函数库,无须使用“;”作为语句结尾,也无须写跟其它语言一样的main()函数,Swift中,全局区的代码就是程序入口.You ...

  8. 搭建一个完整的Android工程(一)Dagger2

    写在前面 现在越来越多的使用到了开源项目,但是仅限于使用,却不了解,更谈不上深入.也是因为越来越多的开源项目,平时工作中遇到问题也是第一时间寻找对应的开源项目,少了许多独立的思考.现在虽然能很轻松的完 ...

  9. SQLite3的基本使用

    |SQLite3简介  SQLite3只是一个轻型的嵌入式数据库引擎,占用资源非常低,处理速度比Mysql还快,专门用于移动设备上进行适量的数据存取,它只是一个文件,不需要服务器进程. 常用术语:表( ...

  10. Java中并发问题整理

    1. java中有几种方法可以实现一个线程? 使用Runnable,Callable,Thread或者线程池 2. 如何停止一个正在运行的线程? 可以使用正在运行的线程,支持线程中断,通常是定义一个v ...