zoukankan      html  css  js  c++  java
  • Sql Server stuff使用

      
    ----原始数据----
    select ActivityName+':'+CONVERT(varchar(2), COUNT(*)) AS 退件次数 from FAERejectData WHERE FInstanceID = 'f9c2cc85-c05f-4545-8095-97861d0e2120' GROUP BY ActivityName
    查询结果如下
    EQA会签:1
    分析评估:2
    责任工程师确认:1
    ---期望数据-----
    select STUFF((SELECT ';'+tmp.退件次数 FROM   
     
     (
     select ActivityName+':'+CONVERT(varchar(2), COUNT(*))  AS 退件次数 from FAERejectData
    
     WHERE FInstanceID = 'f9c2cc85-c05f-4545-8095-97861d0e2120'
     GROUP BY ActivityName)tmp where 1= 1 FOR XML PATH('')),1,1,'') 

    查询结果:EQA会签:1;分析评估:2;责任工程师确认:1

    二、

    ---原始数据---
     select ActivityName,r.RejectReason
     from FAERejectData R
     WHERE FInstanceID = 'f9c2cc85-c05f-4545-8095-97861d0e2120'

    查询结果如下:

    EQA会签 样品NG
    分析评估 资料NG
    责任工程师确认 样品NG
    分析评估 NVT内部原因

     
    ------期望数据-------------------
    
      select ActivityName, items=stuff((select ','+RejectReason from (select distinct ActivityName,RejectReason from
    FAERejectData WHERE FInstanceID = 'f9c2cc85-c05f-4545-8095-97861d0e2120') t where ActivityName=s.ActivityName for xml path('')), 1, 1, '') from (select distinct ActivityName,RejectReason from FAERejectData WHERE FInstanceID = 'f9c2cc85-c05f-4545-8095-97861d0e2120') s group by ActivityName
    查询数据如下,3行2列:

    EQA会签 样品NG
    分析评估 NVT内部原因,资料NG
    责任工程师确认 样品NG

    ----再次合并数据

    select STUFF((SELECT ','+tmp.退件原因 FROM (

    
    

    select ActivityName+':'+stuff((select ';'+RejectReason from (select distinct ActivityName,RejectReason from FAERejectData WHERE FInstanceID = 'f9c2cc85-c05f-4545-8095-97861d0e2120') t
    where ActivityName=s.ActivityName for xml path('')), 1, 1, '') as 退件原因
    from (select distinct ActivityName,RejectReason from FAERejectData WHERE FInstanceID = 'f9c2cc85-c05f-4545-8095-97861d0e2120') s
    group by ActivityName)tmp where 1= 1 FOR XML PATH('')),1,1,'')

    查询结果:单行单列

    EQA会签:样品NG,分析评估:NVT内部原因;资料NG,责任工程师确认:样品NG

     
  • 相关阅读:
    优化SQL查询:如何写出高性能SQL语句
    动态库与静态库
    多线程程序中fork导致的一些问题
    合理的使用size_t可以提高程序的可移植性和代码的可读性,让你的程序更高效。
    linux下C++ STL hash_map的使用以及使用char *型变量作为Key值的一大“坑”
    阅读腾讯编程规范的笔记
    2、vector的实现
    linux下C++对线程的封装
    1、空间配置器
    SQL Server三种表连接原理
  • 原文地址:https://www.cnblogs.com/gudaozi/p/10108311.html
Copyright © 2011-2022 走看看