Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.33 KB | None | 0 0
  1. WITH CTE AS (
  2. SELECT A.EMPLID
  3. , C.VENDOR_ID
  4. , B.FIRST_NAME
  5. , B.LAST_NAME
  6. , A.BANK_CD
  7. , A.ACCOUNT_NUM
  8. , A.ACCOUNT_TYPE
  9. , A.PRIORITY
  10. , A.LAST_UPDATE_DATE
  11. , A.EFFDT
  12. , MAX(A.LAST_UPDATE_DATE) OVER(PARTITION BY A.EMPLID) AS MAX_UPDATE_DATE
  13. , ROW_NUMBER() OVER(PARTITION BY A.EMPLID
  14. ORDER BY A.EFFDT DESC
  15. , D.EFFDT DESC) AS RN
  16. FROM PS_DIRECT_DEPOSIT D INNER JOIN PS_DIR_DEP_DISTRIB A ON A.EMPLID = D.EMPLID
  17. AND A.EFFDT = D.EFFDT INNER JOIN PS_EMPLOYEES B ON B.EMPLID = A.EMPLID INNER JOIN PS_GHS_DIR_DEP_VND C ON C.EMPLID = A.EMPLID
  18. INNER JOIN PS_DIR_DEP_DISTRIB E ON E.EMPLID = A.EMPLID AND E.EFFDT = A.EFFDT AND E.PRIORITY = A.PRIORITY
  19. WHERE B.EMPL_STATUS NOT IN ('T','R','D')
  20. AND ((A.DEPOSIT_TYPE = 'P'
  21. AND A.AMOUNT_PCT = 100)
  22. OR A.PRIORITY = 999
  23. OR A.DEPOSIT_TYPE = 'B')
  24. AND D.EFF_STATUS = 'A' )
  25.  
  26. SELECT CASE WHEN RN = 1 THEN 'NEW ROW' WHEN RN = 2 THEN 'OLD ROW' END AS
  27. 'ROW_TYPE' , *
  28. FROM CTE
  29. WHERE RN IN (1, 2)
  30. AND MAX_UPDATE_DATE >= GETDATE() - 8
  31.  
  32. ROW_TYPE EMPLID VENDOR_ID FIRST_NAME LAST_NAME BANK_CD ACCOUNT_NUM ACCOUNT_TYPE PRIORITY LAST_UPDATE_DATE EFFDT MAX_UPDATE_DATE RN
  33. NEW ROW 12345 XYZ123 John Smith 111111122 45678 C 999 03/12/2019 03/12/2019 03/12/2019 1
  34. OLD ROW 12345 XYZ123 John Smith 111111122 45678 C 999 10/25/2017 10/25/2017 10/25/2017 2
  35. NEW ROW 47831 A86464 Samm Bulle 754566654 98865 C 999 03/12/2019 06/08/2018 03/12/2019 1
  36. OLD ROW 47831 A86464 Samm Bulle 754566654 45678 C 999 10/25/2017 06/08/2018 10/25/2017 2
  37. NEW ROW 32456 KG4561 Kilo Renne 875123311 32146 C 300 09/02/2018 09/02/2018 09/02/2018 1
  38. OLD ROW 32456 KG4561 Kilo Renne 971215477 78131 C 310 12/21/2017 12/21/2017 12/21/2017 2
  39.  
  40. WITH CTE AS (
  41. SELECT A.EMPLID
  42. --, C.VENDOR_ID
  43. , B.FIRST_NAME
  44. , B.LAST_NAME
  45. , A.BANK_CD
  46. , A.ACCOUNT_NUM
  47. , A.ACCOUNT_TYPE
  48. , A.PRIORITY
  49. , A.LAST_UPDATE_DATE
  50. , A.EFFDT
  51. , MAX(A.LAST_UPDATE_DATE) OVER(PARTITION BY A.EMPLID) AS MAX_UPDATE_DATE
  52. , ROW_NUMBER() OVER(PARTITION BY A.EMPLID
  53. ORDER BY A.EFFDT DESC
  54. , D.EFFDT DESC) AS RN
  55. FROM PS_DIRECT_DEPOSIT D INNER JOIN PS_DIR_DEP_DISTRIB A ON A.EMPLID = D.EMPLID
  56. AND A.EFFDT = D.EFFDT INNER JOIN PS_EMPLOYEES B ON B.EMPLID = A.EMPLID INNER JOIN PS_GHS_DIR_DEP_VND C ON C.EMPLID = A.EMPLID
  57. ---ADDING SELF JOIN BELOW---
  58. INNER JOIN PS_DIR_DEP_DISTRIB E ON E.EMPLID = A.EMPLID AND E.EFFDT =
  59. A.EFFDT AND E.PRIORITY = A.PRIORITY
  60. WHERE B.EMPL_STATUS NOT IN ('T','R','D')
  61. AND ((A.DEPOSIT_TYPE = 'P'
  62. AND A.AMOUNT_PCT = 100)
  63. OR A.PRIORITY = 999
  64. OR A.DEPOSIT_TYPE = 'B')
  65. AND D.EFF_STATUS = 'A'
  66. ---ADDING NEW WHERE CONDITION BELOW---
  67. AND (E.ACCOUNT_NUM <> A.ACCOUNT_NUM OR E.BANK_CD <> A.BANK_CD ))
  68. SELECT CASE WHEN RN = 1 THEN 'NEW ROW' WHEN RN = 2 THEN 'OLD ROW' END AS 'ROW_TYPE'
  69. , *
  70. FROM CTE
  71. WHERE RN IN (1, 2)
  72. AND MAX_UPDATE_DATE >= GETDATE() - 8
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement