链接的 SQL Server 记录

约瑟夫

我正在使用 SQL Server 2012 我有包含此信息的票证

Ticket No| Date | Closed
T001     | D1   | 
T002     | D2   |
T003     | D3   | Yes
T004     | D4   | Yes 
T005     | D5   |
T006     | D6   | Yes

我想按“案例”对它们进行分组,关闭后的第一张票是打开“案例”和以下所有直到关闭的票都是“案例”的一部分

Case No | Ticket No| Date | Closed
C001    | T001     | D1   | 
C001    | T002     | D2   |
C001    | T003     | D3   | Yes
C002    | T004     | D4   | Yes 
C003    | T005     | D5   |
C003    | T006     | D6   | Yes

我已经尝试了几个小时(使用滞后、排名等),但我找不到办法做到这一点。我找不到根据需要生成案例号的方法 你有什么想法吗?非常感谢

这是查询:

SELECT
    CONCAT('C' , ID_TICKET) As ID_CASE_TEMP
    ,ID_TICKET
    ,DT_TICKET
    ,IIF(IsNull(LAG(IsNull(LB_CLOSING,'No')) OVER (ORDER BY DT_TICKET),'Yes') = 'Yes','Yes','No') As LB_OPENNING
    ,IsNull(LB_CLOSING,'No') As LB_CLOSING
    ,LAG(ID_TICKET) OVER (ORDER BY DT_TICKET) As PREVIOUS_TICKET
    ,LAG(DT_TICKET) OVER (ORDER BY DT_TICKET) As PREVIOUS_TICKET_DATE
    ,LAG(IsNull(LB_CLOSING,'No')) OVER (ORDER BY DT_TICKET) As PREVIOUS_TICKET_CLOSING
    ,ROW_NUMBER() OVER (ORDER BY DT_TICKET) As CD_ROW_NUMBER
FROM 
    TICKETS 
普拉迪普

这是使用LAG窗口函数的一种方法

SELECT 'C' + RIGHT(Concat('00', 1+Sum(CASE WHEN prev_val = 'Yes' THEN 1 ELSE 0 END)
                                        OVER (ORDER BY [date])), 3) AS [Case No], 
       [Ticket No],
       [Date],
       [Closed]
FROM   (SELECT *, Lag(closed) OVER( ORDER BY [date]) AS prev_val 
        FROM   table1) a 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server中的链接记录视图

来自分类Dev

SQL Server存储过程可以链接和取消链接记录,还可以递归地添加链接吗?

来自分类Dev

递归链接SQL中的记录

来自分类Dev

Concat记录SQL Server

来自分类Dev

使用SQL Server链接表时,连续表单不会显示“新记录”

来自分类Dev

SQL Server:选择记录,而不链接到另一个表

来自分类Dev

如何从SQL SERVER 2012中更快地查询记录来查询链接的DB2服务器的记录数

来自分类Dev

sql记录获取最新记录-SQL Server

来自分类Dev

合并SQL SERVER中的记录

来自分类Dev

筛选SQL Server中的记录

来自分类Dev

SQL Server记录计数差异

来自分类Dev

SQL Server同级记录计数

来自分类Dev

VB链接SQL Server问题

来自分类Dev

链接记录?

来自分类Dev

SQL查找未将任何记录标记为默认记录的链接记录

来自分类Dev

SQL Server:在日期的X天内返回记录

来自分类Dev

以正确的方式从SQL Server获取单个记录

来自分类Dev

SQL Server分页具有大量记录

来自分类Dev

无法删除SQL Server CE中的记录

来自分类Dev

快速添加记录SQL Server2008

来自分类Dev

SQL Server SUM()用于DISTINCT记录

来自分类Dev

SQL Server:根据记录的值返回列名

来自分类Dev

插入/更新海量记录SQL Server

来自分类Dev

分区历史记录SQL Server

来自分类Dev

如何从SQL Server删除重复记录?

来自分类Dev

每个记录的SQL Server计数不同

来自分类Dev

SQL Server仅检查先前的记录

来自分类Dev

快速添加记录SQL Server2008

来自分类Dev

对SQL SERVER中的多个记录使用PIVOT