• 相邻相邻问题


     WITH   cte
              AS ( SELECT
     --ROW_NUMBER() OVER ( PARTITION BY StuID ORDER BY BZList.BZInputTime ) pid,
                            BZDate, BZInputTime, StuName, STUID, BZKTypeName,
                            BZData
                   FROM     BZList
                   WHERE    StuID = 26768
                            AND ( ( BZKTypeName = '桩考'
                                    AND BZInfro = '不及'
                                  )
                                  OR ( BZKTypeName = '补考名单'
                                       AND BZData = '桩考'
                                     )
                                )
    -- ORDER BY BZList.BZInputTime
                           
                 )
        SELECT  BZDate, BZInputTime, StuName, STUID, BZKTypeName, BZInputTime1
        FROM    ( SELECT    ROW_NUMBER() OVER ( PARTITION BY stuid, s2.BZInputTime ORDER BY BZInputTime DESC ) PID,
                            *
                  FROM      ( SELECT    s0.BZDate, s0.BZInputTime, s0.StuName,
                                        s0.STUID, s0.BZKTypeName,
                                        BZInputTime1 = s1.BZInputTime
                              FROM      ( SELECT    BZDate, BZInputTime, StuName,
                                                    STUID, BZKTypeName, BZData
                                          FROM      cte
                                          WHERE     BZKTypeName = '桩考'
                                        ) s0
                                        JOIN ( SELECT   BZDate, BZInputTime,
                                                        StuName, STUID,
                                                        BZKTypeName, BZData
                                               FROM     cte
                                               WHERE    BZKTypeName = '补考名单'
                                             ) s1 ON s0.stuid = s1.stuid
                                                     AND s0.BZInputTime < s1.BZInputTime
                            ) s2
                ) s3
        WHERE   pid = 1
                           
     SELECT BZDate, BZInputTime, StuName, STUID, BZKTypeName, BZData
     FROM   BZList
     WHERE  StuID = 26768
            AND ( ( BZKTypeName = '桩考'
                    AND BZInfro = '不及'
                  )
                  OR ( BZKTypeName = '补考名单'
                       AND BZData = '桩考'
                     )
                )
     ORDER BY BZList.BZInputTime

  • 相关阅读:
    Excel与Google Sheets中实现线性规划求解
    Optaplanner终于支持多线程并行运行
    【译】Optaplanner开发手册本地化: (0)
    多工序、多机台(产线)环境下的排程要点
    设计Optaplanner下实时规划服务的失败经历
    Optaplanner规划引擎的工作原理及简单示例(2)
    vim 分屏
    vim autocmd
    irun vcs option
    记录
  • 原文地址:https://www.cnblogs.com/qanholas/p/2731353.html
Copyright © 2020-2023  润新知