首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据日期时间为每个唯一值组合行

根据日期时间为每个唯一值组合行
EN

Stack Overflow用户
提问于 2015-06-17 03:19:05
回答 2查看 40关注 0票数 0

我有一张三栏的桌子

代码语言:javascript
复制
TICKET_ID   ASSIGN  ASSIGN_DATE
5692    ASSIGN-5    2013-07-17 19:37:09.000
5740    ASSIGN-5    2013-07-17 19:37:09.000
5741    ASSIGN-5    2013-07-17 19:37:09.000
5742    ASSIGN-5    2013-07-17 10:40:15.000
5742    ASSIGN-4    2013-07-17 19:37:09.000

我需要根据日期时间提升结果将ASSIGN行组合为每个TICKET_ID的一行,如下所示

代码语言:javascript
复制
TICKET_ID   ASSIGN  
5692    ASSIGN-5    
5740    ASSIGN-5    
5741    ASSIGN-5    
5742    ASSIGN-4 ASSIGN-5   

我怎样才能建立结果?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-17 03:24:07

您可以使用FOR XML PATH('')

代码语言:javascript
复制
WITH SampleData(TICKET_ID, ASSIGN, ASSIGN_DATE) AS(
    SELECT 5692, 'ASSIGN-5', CAST('2013-07-17 19:37:09.000' AS DATETIME) UNION ALL
    SELECT 5740, 'ASSIGN-5', '2013-07-17 19:37:09.000' UNION ALL
    SELECT 5741, 'ASSIGN-5', '2013-07-17 19:37:09.000' UNION ALL
    SELECT 5742, 'ASSIGN-5', '2013-07-17 10:40:15.000' UNION ALL
    SELECT 5742, 'ASSIGN-4', '2013-07-17 19:37:09.000'
)
SELECT
    TICKET_ID,
    ASSIGN = STUFF((
        SELECT ' ' + ASSIGN
        FROM SampleData
        WHERE TICKET_ID = sd.TICKET_ID
        ORDER BY ASSIGN_DATE ASC
        FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'
    ), 1, 1, '')
FROM SampleData sd
GROUP BY sd.TICKET_ID

阅读此文章由亚伦伯特兰获得更多细节。

票数 2
EN

Stack Overflow用户

发布于 2015-06-17 04:04:03

这是所需的结果集。给出两种解决方案,一是简单地在票证id的基础上连接两个表,二是在分配行的基础上连接,它将给出13行。

代码语言:javascript
复制
----------1st-------------------

Select T.*,A.* from Tikets T with(nolock)
join
Assignement A with(nolock)
on a.TICKET_ID = t.TICKET_ID
order by t.ASSIGN_DATE

-----------2nd-----------------

Select T.*,A.* from Tikets T with(nolock)
join
Assignement A with(nolock)
on a.ASSIGN like t.ASSIGN +'%' 
order by t.ASSIGN_DATE

在这里输入链接描述

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30881768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档