博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sqlserver 对多条数据分组
阅读量:7047 次
发布时间:2019-06-28

本文共 1493 字,大约阅读时间需要 4 分钟。

在开发中,经常会遇到要吧一行行数据按照某一行进行分组
 
  1. USE [OA]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[usp_report_GatherDataMsgRpt] Script Date: 12/02/2014 10:42:22 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER PROC [dbo].[usp_report_GatherDataMsgRpt]
  9. @datamsgid int
  10. AS
  11. begin
  12. DECLARE @t_dataPublish_id INT ,@t_dataPublishColumn_id INT , @execSQL VARCHAR(4000),@temSql1 VARCHAR(4000) ,@temSql2 VARCHAR(4000)
  13. ,@columnKey varchar(200)
  14. SELECT @t_dataPublish_id=@datamsgid
  15. SELECT @execSQL='' ,@temSql1='',@temSql2='',@columnKey =''
  16. DECLARE Cur CURSOR
  17. FOR
  18. SELECT t1.id
  19. FROM dbo.t_dataPublishColumn t1
  20. WHERE t1.t_dataPublish_id = @t_dataPublish_id
  21. SELECT @execSQL = 'SELECT '
  22. OPEN Cur
  23. FETCH NEXT FROM Cur INTO @t_dataPublishColumn_id
  24. WHILE @@fetch_status = 0
  25. BEGIN
  26. SELECT @columnKey=''
  27. SELECT
  28. @columnKey =
  29. LTRIM(t2.columnName)
  30. FROM t_dataPublishColumn t2
  31. WHERE t2.id=@t_dataPublishColumn_id
  32. SET @temSql1 = @temSql1 + ',MAX(' + LTRIM(@columnKey) + ') as '+ LTRIM(@columnKey)
  33. SET @temSql2 = @temSql2 + ',CASE WHEN t2.t_dataPublishColumn_id='
  34. + LTRIM(@t_dataPublishColumn_id) + ' then cellValue END '
  35. + LTRIM(@columnKey)
  36. FETCH NEXT FROM Cur INTO @t_dataPublishColumn_id
  37. END
  38. CLOSE Cur
  39. DEALLOCATE Cur
  40. SELECT @execSQL = @execSQL + SUBSTRING(@temSql1,2,LEN(@temSql1)) + ' FROM (
  41. SELECT t2.rownum
  42. ' + @temSql2
  43. + '
  44. FROM t_dataPublishColumn t1,t_dataPublishDetail t2 WHERE t1.id=t2.t_dataPublishColumn_id AND t1.t_dataPublish_id='
  45. + LTRIM(@t_dataPublish_id) + ') x GROUP BY x.rownum
  46. '
  47. PRINT @execSQL
  48. EXEC(@execSQL)
  49. END

转载地址:http://tezol.baihongyu.com/

你可能感兴趣的文章
三种方法写监听事件
查看>>
hdu 2899 hdu 3400 三分/几何
查看>>
[转]World Wind学习总结一
查看>>
算法题一道
查看>>
滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(4月14日)...
查看>>
iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)
查看>>
C# Struct结构体里数组长度的指定
查看>>
感知机原理小结
查看>>
Java动态代理与Cglib库
查看>>
系统性能不够原因可能是cpu不够,内存不够等等
查看>>
让div在另一个div中居中
查看>>
Linux indent
查看>>
dir for RequestHandler and request
查看>>
CoreCLR文档翻译 - GC的设计
查看>>
js-ES6学习笔记-Proxy(2)
查看>>
Spring Boot下Druid连接池+mybatis
查看>>
Session与Cookie解析
查看>>
Java实现二叉排序树的插入、查找、删除
查看>>
Delphi线程定时器TThreadedTimer及用法--还有TThreadList用法可以locklist
查看>>
UVA 12124 UVAlive 3971 Assemble(二分 + 贪心)
查看>>