Advertisement
Guest User

Untitled

a guest
Aug 7th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 6.01 KB | None | 0 0
  1. DECLARE @LastCode VARCHAR(4) = '0416';
  2.  
  3. DECLARE @Report TABLE
  4. (
  5.         CaseDetailsId INT,
  6.         ClientId INT,
  7.         SetId INT,
  8.         CaseId INT,
  9.         ClientCaseNumber NVARCHAR(256),
  10.         [querry1 CaseActionId] INT,
  11.         [querry2 CaseActionId] INT,
  12.         [querry1 ActionStr] NVARCHAR(4),
  13.         [querry1 Description] NVARCHAR(256),
  14.         [querry2 ActionStr] NVARCHAR(4),
  15.         [querry2 Description] NVARCHAR(256),
  16.         [querry1 DateAdded] DATETIME2,
  17.         [querry2 DateAdded] DATETIME2,
  18.         [querry1 Login] NVARCHAR(64),
  19.         [querry2 Login] NVARCHAR(64)
  20. )
  21. INSERT INTO @Report
  22.     SELECT DISTINCT
  23.         querry1.CaseDetailsId,
  24.         querry1.ClientId,
  25.         querry1.SetId,
  26.         querry1.CaseId,
  27.         querry1.ClientCaseNumber,
  28.         querry1.CaseActionId as [querry1 CaseActionId],
  29.         querry2.CaseActionId as [querry2 CaseActionId],
  30.         querry1.ActionStr as [querry1 ActionStr],
  31.         querry1.Description as [querry1 Description],
  32.         querry2.ActionStr as [querry2 ActionStr],
  33.         querry2.Description as [querry2 Description],
  34.         querry1.DateAdded as [querry1 DateAdded],
  35.         querry2.[DateAdded] as [querry2 DateAdded],
  36.         querry1.[Login] as [querry1 Login],
  37.         querry2.[Login] as [querry2 Login]
  38.     FROM
  39.         ( -- wybieranie spraw z ostatnim kodem które nie były dodane przez system
  40.             SELECT DISTINCT
  41.                 cd.CaseDetailsId,
  42.                 cd.ClientId,
  43.                 cd.SetId,
  44.                 cd.CaseId,
  45.                 cd.ClientCaseNumber,
  46.                 cah.CaseActionId,
  47.                 cad.ActionStr,
  48.                 cad.Description,
  49.                 cah.DateAdded,
  50.                 u.Login
  51.             FROM
  52.                 ( -- wybieranie ostatniego kodu nie uwzględniając kodów z listy
  53.                     SELECT
  54.                         cd.CaseDetailsId,
  55.                         MAX(cah.CaseActionId) AS [CaseActionId]
  56.                     FROM
  57.                         CaseDetails cd
  58.                         LEFT JOIN CaseActionHistory cah on cah.CaseDetailId = cd.CaseDetailsId
  59.                         LEFT JOIN CaseActionDefinition cad on cad.DefinitionId = cah.CaseActionDefinitionId
  60.                         LEFT JOIN Users u on u.UserId = cah.UserId
  61.                     WHERE
  62.                         cah.CaseDetailId IN
  63.                             ( -- wybranie spraw które mamy w obsłudze
  64.                                 SELECT
  65.                                     cdv.CaseDetailsId
  66.                                 FROM
  67.                                     CaseDetailsView cdv
  68.                                 WHERE
  69.                                     CAST(GETDATE() AS DATE) >= CAST(cdv.DateImported AS DATE)
  70.                                     AND
  71.                                     CAST(GETDATE() AS DATE) <= CAST(cdv.EndServiceDate AS DATE)
  72.                             )
  73.                             AND
  74.                             u.Login NOT IN ('admin', 'system')
  75.                     GROUP BY
  76.                         cd.CaseDetailsId
  77.                 ) querry
  78.                 LEFT JOIN CaseActionHistory cah on cah.CaseActionId = querry.CaseActionId
  79.                 LEFT JOIN CaseActionDefinition cad on cad.DefinitionId = cah.CaseActionDefinitionId
  80.                 LEFT JOIN CaseDetails cd on cd.CaseDetailsId = querry.CaseDetailsId
  81.                 LEFT JOIN Users u on u.UserId = cah.UserId
  82.             WHERE
  83.                 cad.[ActionStr] = @LastCode
  84.         ) querry1
  85.     LEFT JOIN
  86.         ( -- wybieranie spraw z ostatnim kodem
  87.             SELECT DISTINCT
  88.                 cd.CaseDetailsId,
  89.                 cd.ClientId,
  90.                 cd.SetId,
  91.                 cd.CaseId,
  92.                 cd.ClientCaseNumber,
  93.                 cah.CaseActionId,
  94.                 cad.ActionStr,
  95.                 cad.Description,
  96.                 cah.DateAdded,
  97.                 u.Login
  98.             FROM
  99.                 ( -- wybieranie ostatniego kodu nie uwzględniając kodów z listy
  100.                     SELECT
  101.                         cd.CaseDetailsId,
  102.                         MAX(cah.CaseActionId) AS [CaseActionId]
  103.                     FROM
  104.                         CaseDetails cd
  105.                         LEFT JOIN CaseActionHistory cah on cah.CaseDetailId = cd.CaseDetailsId
  106.                         LEFT JOIN CaseActionDefinition cad on cad.DefinitionId = cah.CaseActionDefinitionId
  107.                         LEFT JOIN Users u on u.UserId = cah.UserId
  108.                     WHERE
  109.                         cah.CaseDetailId IN
  110.                             ( -- wybranie spraw które mamy w obsłudze
  111.                                 SELECT
  112.                                     cdv.CaseDetailsId
  113.                                 FROM
  114.                                     CaseDetailsView cdv
  115.                                 WHERE
  116.                                     CAST(GETDATE() AS DATE) >= CAST(cdv.DateImported AS DATE)
  117.                                     AND
  118.                                     CAST(GETDATE() AS DATE) <= CAST(cdv.EndServiceDate AS DATE)
  119.                             )
  120.                     GROUP BY
  121.                         cd.CaseDetailsId
  122.                 ) querry
  123.                 LEFT JOIN CaseActionHistory cah on cah.CaseActionId = querry.CaseActionId
  124.                 LEFT JOIN CaseActionDefinition cad on cad.DefinitionId = cah.CaseActionDefinitionId
  125.                 LEFT JOIN CaseDetails cd on cd.CaseDetailsId = querry.CaseDetailsId
  126.                 LEFT JOIN Users u on u.UserId = cah.UserId
  127.         ) querry2 on querry2.[CaseDetailsId] = querry1.[CaseDetailsId]
  128.  
  129. update casedetails set CaseStatusId = 1
  130. from casedetails
  131. where
  132. CaseDetailsId in
  133. (
  134. SELECT DISTINCT
  135.     cd.CaseDetailsId
  136. FROM
  137.     @Report r
  138.     left join casedetails cd on cd.CaseDetailsId = r.CaseDetailsId
  139.     left join CaseStatusDefinition csd on csd.DefinitionId = cd.CaseStatusId
  140. WHERE
  141.     r.[querry1 DateAdded] >= r.[querry2 DateAdded]
  142.     AND
  143.     r.[querry1 DateAdded] <= getdate()-4
  144.     and
  145.     cd.CaseStatusId = 8
  146. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement