sqlserver 对多条数据分组
USE [OA]GO/****** Object: StoredProcedure [dbo].[usp_report_GatherDataMsgRpt] Script Date: 12/02/2014 10:42:22 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROC [dbo].[usp_report_GatherDataMsgRpt]@datamsgid intASbeginDECLARE @t_dataPublish_id INT ,@t_dataPublishColumn_id INT , @execSQL VARCHAR(4000),@temSql1 VARCHAR(4000) ,@temSql2 VARCHAR(4000),@columnKey varchar(200)SELECT @t_dataPublish_id=@datamsgidSELECT @execSQL='' ,@temSql1='',@temSql2='',@columnKey =''DECLARE Cur CURSORFORSELECT t1.idFROM dbo.t_dataPublishColumn t1WHERE t1.t_dataPublish_id = @t_dataPublish_idSELECT @execSQL = 'SELECT 'OPEN CurFETCH NEXT FROM Cur INTO @t_dataPublishColumn_idWHILE @@fetch_status = 0BEGINSELECT @columnKey=''SELECT@columnKey =LTRIM(t2.columnName)FROM t_dataPublishColumn t2WHERE t2.id=@t_dataPublishColumn_idSET @temSql1 = @temSql1 + ',MAX(' + LTRIM(@columnKey) + ') as '+ LTRIM(@columnKey)SET @temSql2 = @temSql2 + ',CASE WHEN t2.t_dataPublishColumn_id='+ LTRIM(@t_dataPublishColumn_id) + ' then cellValue END '+ LTRIM(@columnKey)FETCH NEXT FROM Cur INTO @t_dataPublishColumn_idENDCLOSE CurDEALLOCATE CurSELECT @execSQL = @execSQL + SUBSTRING(@temSql1,2,LEN(@temSql1)) + ' FROM (SELECT t2.rownum' + @temSql2+ 'FROM t_dataPublishColumn t1,t_dataPublishDetail t2 WHERE t1.id=t2.t_dataPublishColumn_id AND t1.t_dataPublish_id='+ LTRIM(@t_dataPublish_id) + ') x GROUP BY x.rownum'PRINT @execSQLEXEC(@execSQL)END
sqlserver 对多条数据分组的更多相关文章
- SQLServer比较两条数据是否相同
SQLServer比较两条数据是否相同 直接比较可能会一个一个字段的比较,也可以将多个字段拼成一个串然后比较,这里有个hash值比较的方法,很好用 用法 将需要的比较的column放进去,逗号隔开,只 ...
- sqlserver中 多条数据合并成一条数据 (stuff 与 for xml path 连用)
SQL 列转行,即多行合并成一条 需求:按照分组,将多条记录内容合并成一条,效果如下: 数据库示例: CREATE TABLE [t2]([NID] [bigint] NULL,[district ...
- JavaScript如何一次性展示几万条数据
有一位同事跟大家说他在网上看到一道面试题:“如果后台传给前端几万条数据,前端怎么渲染到页面上?”,如何回答? 于是办公室沸腾了, 同事们讨论开了, 你一言我一语说出自己的方案. 有的说直接循环遍历生成 ...
- sql分组(orderBy、GroupBy)获取每组前一(几)条数据
sql数据库实现分组并取每组的前1(几)条数据 测试数据准备工作: 根据某一个字段分组取最大(小)值所在行的数据: 创建表并且插入数据 ),Val )) , 'a1--a的第一个值') , 'b2b2 ...
- sql分组取第一条数据
sq分组取第一条数据的一个方法: select * from ( select row_number() over(partition by ID order by ID) as rownum , * ...
- sqlServer 取每组的前几条数据
首先的建表语句: ) DROP TABLE [test] CREATE TABLE [test] ( [id] [, ) NOT NULL , [name] [nvarchar] () NULL , ...
- sqlserver 将多行数据查询合并为一条数据
有这样一个需求:表T_FUN_TASK为任务表,有字段(TASKID,TASKNAME),表T_FUN_LOGBOOK为日志表,有字段(LOGID,TASKID,LOGDATE),一个任务可持续多天, ...
- SQL Server分组查询某最大值的整条数据(包含linq写法)
想实现如下效果,就是分组后时间最大的那一条数据: 1.SQL SELECT * FROM ( SELECT * , ROW_NUMBER() OVER ( PARTITION BY RIP_GUID ...
- mssql sqlserver 使用sql脚本获取群组后,按时间排序(asc)第一条数据的方法分享
摘要: 下文讲述使用sql脚本,获取群组后记录的第一条数据业务场景说明: 学校教务处要求统计: 每次作业,最早提交的学生名单下文通过举例的方式,记录此次脚本编写方法,方便以后备查,如下所示: 实现思路 ...
随机推荐
- c-fmt-fn标签用法
c-fmt-fn标签用法 CreateTime--2017年1月6日15:48:43 Author:Marydon 一.参考链接 http://blog.csdn.net/fmwind/artic ...
- PO*创建标准采购订单
-- l_iface_rec po_headers_interface%ROWTYPE; 校验头相关信息 ) INTO l_po_count FROM po_headers_all p ...
- glob 模块
# -*- coding: utf-8 -*- #python 27 #xiaodeng #glob 模块 #http://python.jobbole.com/81552/ #查找文件只用到三个匹配 ...
- GitLab Notification Emails
GitLab has a notification system in place to notify a user of events that are important for the work ...
- ArchLinux安装 LXDE
http://wiki.lxde.org/zh/index.php?title=ArchLinux&variant=zh-cn 透过 pacman 安装 LXDE 大多数的最新 LXDE 套件 ...
- java配置使用手册
进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置: 1.下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是 ...
- HDUOJ-------(1022)Train Problem I
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 将form表单转化为json数据
参考地址:https://github.com/hongymagic/jQuery.serializeObject
- 【Linux】如何改变文件的属性与权限
介绍几个常用于群组.拥有者.各种身份的权限的修改的命令,如下所示: chgrp :改变文件所属群组 chown :改变文件拥有者 chmod :改变文件的权限, SUID, SGID, SBIT等等的 ...
- Ubuntu 10.04 安装Qt4.8.1 源码后字体模糊的问题
Ubuntu 10.04 安装QT4.8.1 源码后字体模糊的问题. 附加解决 QT SDK 4.8.1 链接失败的问题 Ubuntu 10.04 编译QT源码后,编译程序,运行后IPA字体无法正常显 ...