Mauriciops
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # Fórmulas e queries para indicadores SEFAZ ## XGnN2 ### IG1N2 - Mensal SQL - ANTIGO $$ \frac{IncidentesTSIx – IncidentesTSIxEncerradosAtraso}{IncidentesTSIx} $$ - Tipo = Incidente - Status = Fechada - Grupo Solucionador = Todos do N2 exceto ('N2_CABEAMENTO', 'N2_SISTEMAS') - Grupo de prioridades = TSI1, TSI2, TSI3, TSI4 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` > sql >``` *sql > WITH CTE_Chamados AS ( > SELECT DISTINCT CHAMADO, SLA_VIOLADO, >COD_SOLUCAO > FROM dbo.CHAMADOS > WHERE TIPO_CHAMADO = 'Incidente' > AND STATUS = 'Fechada' > AND GRUPO_SOLUCIONADOR LIKE 'N2_%' > AND GRUPO_SOLUCIONADOR NOT IN('N2_CABEAMENTO', 'N2_SISTEMAS') > AND DATEADD(ss, DATA_SOLUCAO - 10800, >'19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND COD_SOLUCAO IN ('TSI1', 'TSI2', 'TSI3', 'TSI4') > ), > All_Solutions AS ( > SELECT COD_SOLUCAO > FROM (VALUES ('TSI1'), ('TSI2'), ('TSI3'), ('TSI4')) AS T(COD_SOLUCAO) > ) > SELECT > A.COD_SOLUCAO AS priority, > COUNT(CASE WHEN C.SLA_VIOLADO = 0 THEN 1 END) AS fulfilled, > COUNT(C.COD_SOLUCAO) AS total, > ISNULL(AVG(CASE WHEN C.SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END), 0) AS result > FROM All_Solutions AS A > LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO > GROUP BY A.COD_SOLUCAO > ORDER BY A.COD_SOLUCAO; ### SQL NOVO IG1N2 ``` *sql -- CTE_INCIDENTE_SLA_CICLO WITH CTE_INCIDENTE_SLA_CICLO AS ( SELECT cr.ref_num AS [CHAMADO], SUM(CAST(zciclo_cr.z_dur_Time_spent_group AS INT)) AS [TOTAL_SOLUTION_TIME], cr.sla_violation AS [SLA_VIOLADO_CA], CASE WHEN pri.sym = 'P1' THEN 'TSI1' WHEN pri.sym = 'P2' THEN 'TSI2' WHEN pri.sym = 'P3' THEN 'TSI3' WHEN pri.sym = 'P4' THEN 'TSI4' WHEN pri.sym = 'P5' THEN 'TSI5' WHEN pri.sym = 'P6' THEN 'TSI6' WHEN pri.sym = 'P7' THEN 'TSI7' ELSE pri.sym END as [COD_SOLUCAO] FROM call_req cr JOIN z_ciclo_de_vida_cr zciclo_cr ON cr.persid = zciclo_cr.z_srl_Persistent_id JOIN pri ON cr.priority = pri.enum WHERE cr.type = 'I' AND pri.sym IN ('P1', 'P2', 'P3', 'P4') AND (cr.status = 'CL' AND cr.status != 'CNCL') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' GROUP BY cr.ref_num, pri.sym, cr.sla_violation ), -- CTE_CHAMADO_SLA_CR CTE_CHAMADO_SLA_CR AS ( SELECT DISTINCT cr.ref_num AS [CHAMADO], CASE WHEN (incidentes.[TOTAL_SOLUTION_TIME] > slatpl.elapsed) THEN 1 ELSE 0 END AS [VIOLACAO_SLA_NOVO] FROM call_req cr JOIN attached_sla ON cr.persid = attached_sla.mapped_cr JOIN srv_desc ON attached_sla.map_sdsc = srv_desc.persid JOIN att_evt ON cr.persid = att_evt.obj_id JOIN evt ON att_evt.event_tmpl = evt.persid JOIN slatpl ON srv_desc.persid = slatpl.service_type JOIN CTE_INCIDENTE_SLA_CICLO incidentes ON cr.ref_num = incidentes.[CHAMADO] WHERE DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' AND (cr.status = 'CL' AND cr.status != 'CNCL') AND cr.type = 'I' AND incidentes.[COD_SOLUCAO] IN ('TSI1', 'TSI2', 'TSI3', 'TSI4') AND slatpl.object_type = 'cr' AND (evt.sym = 'Violação de SLA' AND slatpl.sym = 'Violar') -- nome_evt em template e nome_evt no chamado GROUP BY cr.ref_num, srv_desc.sym, slatpl.elapsed, cr.sla_violation, incidentes.[TOTAL_SOLUTION_TIME], incidentes.[COD_SOLUCAO]); -- IG1N2 - Mensal CTE_Chamados AS ( SELECT cr.ref_num AS [CHAMADO], CASE WHEN pri.sym = 'P1' THEN 'TSI1' WHEN pri.sym = 'P2' THEN 'TSI2' WHEN pri.sym = 'P3' THEN 'TSI3' WHEN pri.sym = 'P4' THEN 'TSI4' WHEN pri.sym = 'P5' THEN 'TSI5' WHEN pri.sym = 'P6' THEN 'TSI6' WHEN pri.sym = 'P7' THEN 'TSI7' ELSE pri.sym END as [COD_SOLUCAO], CS.VIOLACAO_SLA_NOVO -- Adicionando a coluna VIOLACAO_SLA_NOVO da CTE_CHAMADO_SLA_CR FROM call_req cr JOIN ca_contact grp ON cr.group_id = grp.contact_uuid JOIN pri ON cr.priority = pri.enum LEFT JOIN CTE_CHAMADO_SLA_CR CS ON cr.ref_num = CS.CHAMADO -- Associando a nova coluna usando o CHAMADO WHERE (cr.type = 'I' AND cr.status = 'CL' ) AND pri.sym IN ('P1', 'P2', 'P3', 'P4') AND (grp.contact_type = 2308 AND grp.last_name LIKE 'N2_%' ) AND grp.last_name NOT IN ('N2_CABEAMENTO') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' ), All_Solutions AS ( SELECT COD_SOLUCAO FROM (VALUES ('TSI1'), ('TSI2'), ('TSI3'), ('TSI4')) AS T(COD_SOLUCAO) ) -- Consulta final usando a nova coluna de SLA SELECT A.COD_SOLUCAO AS priority, COUNT(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1 END) AS fulfilled, -- Utilizando a nova coluna COUNT(C.COD_SOLUCAO) AS total, ISNULL(AVG(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1.0 ELSE 0 END), 0) AS result -- Utilizando a nova coluna FROM All_Solutions AS A LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO GROUP BY A.COD_SOLUCAO ORDER BY A.COD_SOLUCAO; ``` ### IG2N2 - Mensal - SQL ANTIGO $$ \frac{IncidentesTSIx – IncidentesTSIxEncerradosAtraso}{IncidentesTSIx} $$ - Tipo = Incidente - Status = Fechada - Grupo Solucionador = Todos do N2 exceto ('N2_CABEAMENTO', 'N2_SISTEMAS') - Grupo de prioridades = TSI5, TSI6, TSI7 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` > sql >``` *sql > WITH CTE_Chamados AS ( > SELECT DISTINCT CHAMADO, SLA_VIOLADO, >COD_SOLUCAO > FROM dbo.CHAMADOS > WHERE TIPO_CHAMADO = 'Incidente' > AND STATUS = 'Fechada' > AND GRUPO_SOLUCIONADOR LIKE 'N2_%' > AND GRUPO_SOLUCIONADOR NOT IN('N2_CABEAMENTO', 'N2_SISTEMAS') > AND DATEADD(ss, DATA_SOLUCAO - 10800, >'19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND COD_SOLUCAO IN ('TSI5', 'TSI6', 'TSI7') > ), > All_Solutions AS ( > SELECT COD_SOLUCAO > FROM (VALUES ('TSI5'), ('TSI6'), ('TSI7')) AS T(COD_SOLUCAO) > ) > SELECT > A.COD_SOLUCAO AS priority, > COUNT(CASE WHEN C.SLA_VIOLADO = 0 THEN 1 END) AS fulfilled, > COUNT(C.COD_SOLUCAO) AS total, > ISNULL(AVG(CASE WHEN C.SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END), 0) AS result > FROM All_Solutions AS A > LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO > GROUP BY A.COD_SOLUCAO > ORDER BY A.COD_SOLUCAO; ### IG2N2 - Mensal - SQL NOVO ``` *sql-- CTE_INCIDENTE_SLA_CICLO WITH CTE_INCIDENTE_SLA_CICLO AS ( SELECT cr.ref_num AS [CHAMADO], SUM(CAST(zciclo_cr.z_dur_Time_spent_group AS INT)) AS [TOTAL_SOLUTION_TIME], cr.sla_violation AS [SLA_VIOLADO_CA], CASE WHEN pri.sym = 'P1' THEN 'TSI1' WHEN pri.sym = 'P2' THEN 'TSI2' WHEN pri.sym = 'P3' THEN 'TSI3' WHEN pri.sym = 'P4' THEN 'TSI4' WHEN pri.sym = 'P5' THEN 'TSI5' WHEN pri.sym = 'P6' THEN 'TSI6' WHEN pri.sym = 'P7' THEN 'TSI7' ELSE pri.sym END as [COD_SOLUCAO] FROM call_req cr JOIN z_ciclo_de_vida_cr zciclo_cr ON cr.persid = zciclo_cr.z_srl_Persistent_id JOIN pri ON cr.priority = pri.enum WHERE cr.type = 'I' AND pri.sym IN ('P5', 'P6', 'P7') AND (cr.status = 'CL' AND cr.status != 'CNCL') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' GROUP BY cr.ref_num, pri.sym, cr.sla_violation ), -- CTE_CHAMADO_SLA_CR CTE_CHAMADO_SLA_CR AS ( SELECT DISTINCT cr.ref_num AS [CHAMADO], CASE WHEN (incidentes.[TOTAL_SOLUTION_TIME] > slatpl.elapsed) THEN 1 ELSE 0 END AS [VIOLACAO_SLA_NOVO] FROM call_req cr JOIN attached_sla ON cr.persid = attached_sla.mapped_cr JOIN srv_desc ON attached_sla.map_sdsc = srv_desc.persid JOIN att_evt ON cr.persid = att_evt.obj_id JOIN evt ON att_evt.event_tmpl = evt.persid JOIN slatpl ON srv_desc.persid = slatpl.service_type JOIN CTE_INCIDENTE_SLA_CICLO incidentes ON cr.ref_num = incidentes.[CHAMADO] WHERE DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' AND (cr.status = 'CL' AND cr.status != 'CNCL') AND cr.type = 'I' AND incidentes.[COD_SOLUCAO] IN ('TSI5', 'TSI6', 'TSI7') AND slatpl.object_type = 'cr' AND (evt.sym = 'Violação de SLA' AND slatpl.sym = 'Violar') -- nome_evt em template e nome_evt no chamado GROUP BY cr.ref_num, srv_desc.sym, slatpl.elapsed, cr.sla_violation, incidentes.[TOTAL_SOLUTION_TIME], incidentes.[COD_SOLUCAO] ), -- IG2N2 - Mensal CTE_Chamados AS ( SELECT cr.ref_num AS [CHAMADO], CASE WHEN pri.sym = 'P1' THEN 'TSI1' WHEN pri.sym = 'P2' THEN 'TSI2' WHEN pri.sym = 'P3' THEN 'TSI3' WHEN pri.sym = 'P4' THEN 'TSI4' WHEN pri.sym = 'P5' THEN 'TSI5' WHEN pri.sym = 'P6' THEN 'TSI6' WHEN pri.sym = 'P7' THEN 'TSI7' ELSE pri.sym END as [COD_SOLUCAO], CS.VIOLACAO_SLA_NOVO -- Adicionando a coluna VIOLACAO_SLA_NOVO da CTE_CHAMADO_SLA_CR FROM call_req cr JOIN ca_contact grp ON cr.group_id = grp.contact_uuid JOIN pri ON cr.priority = pri.enum LEFT JOIN CTE_CHAMADO_SLA_CR CS ON cr.ref_num = CS.CHAMADO -- Associando a nova coluna usando o CHAMADO WHERE (cr.type = 'I' AND cr.status = 'CL' ) AND pri.sym IN ('P5', 'P6', 'P7') AND (grp.contact_type = 2308 AND grp.last_name LIKE 'N2_%' ) AND grp.last_name NOT IN ('N2_CABEAMENTO') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' ), All_Solutions AS ( SELECT COD_SOLUCAO FROM (VALUES ('TSI5'), ('TSI6'), ('TSI7')) AS T(COD_SOLUCAO) ) -- Consulta final usando a nova coluna de SLA SELECT A.COD_SOLUCAO AS priority, COUNT(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1 END) AS fulfilled, -- Utilizando a nova coluna COUNT(C.COD_SOLUCAO) AS total, ISNULL(AVG(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1.0 ELSE 0 END), 0) AS result -- Utilizando a nova coluna FROM All_Solutions AS A LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO GROUP BY A.COD_SOLUCAO ORDER BY A.COD_SOLUCAO; GO ``` ### SG1N2 - Mensal - ANTIGO $$ \frac{SolicitaçõesTSSx – SolicitaçõesTSSxEncerradosAtraso}{SolicitaçõesTSSx} $$ - Tipo = Solicitação - Status = Fechada - Grupo Solucionador = Todos do N2 exceto ('N2_CABEAMENTO', 'N2_SISTEMAS') - Grupo de prioridades = TSS1, TSS2, TSS3, TSS4 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` > sql >``` *sql > WITH CTE_Chamados AS ( > SELECT DISTINCT CHAMADO, SLA_VIOLADO, >COD_SOLUCAO > FROM dbo.CHAMADOS > WHERE TIPO_CHAMADO = 'Solicitação' > AND STATUS = 'Fechada' > AND GRUPO_SOLUCIONADOR LIKE 'N2_%' > AND GRUPO_SOLUCIONADOR NOT IN('N2_CABEAMENTO', 'N2_SISTEMAS') > AND DATEADD(ss, DATA_SOLUCAO - 10800, >'19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND COD_SOLUCAO IN ('TSS1', 'TSS2', 'TSS3', 'TSS4') > ), > All_Solutions AS ( > SELECT COD_SOLUCAO > FROM (VALUES ('TSS1'), ('TSS2'), ('TSS3'), ('TSS4')) AS T(COD_SOLUCAO) > ) > SELECT > A.COD_SOLUCAO AS priority, > COUNT(CASE WHEN C.SLA_VIOLADO = 0 THEN 1 END) AS fulfilled, > COUNT(C.COD_SOLUCAO) AS total, > ISNULL(AVG(CASE WHEN C.SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END), 0) AS result > FROM All_Solutions AS A > LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO > GROUP BY A.COD_SOLUCAO > ORDER BY A.COD_SOLUCAO; ### SG1N2 - Mensal - SQL NOVO ``` *sql-- CTE_SOLICITACAO_SLA_CICLO WITH CTE_SOLICITACAO_SLA_CICLO AS ( SELECT cr.ref_num AS [CHAMADO], SUM(CAST(zciclo_cr.z_dur_Time_spent_group AS INT)) AS [TOTAL_SOLUTION_TIME], cr.sla_violation AS [SLA_VIOLADO_CA], z_TPS.code AS [COD_SOLUCAO] FROM call_req cr JOIN z_ciclo_de_vida_cr zciclo_cr ON cr.persid = zciclo_cr.z_srl_Persistent_id JOIN prob_ctg pcat ON pcat.persid = cr.category JOIN z_TPS ON pcat.ztempo_servico = z_TPS.id WHERE cr.type = 'R' AND z_TPS.code IN ('TSS1', 'TSS2', 'TSS3', 'TSS4') AND (cr.status = 'CL' AND cr.status != 'CNCL') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' GROUP BY cr.ref_num, cr.sla_violation, z_TPS.code ), -- CTE_CHAMADO_SLA_CR CTE_CHAMADO_SLA_CR AS ( SELECT DISTINCT cr.ref_num AS [CHAMADO], CASE WHEN (solicitacoes.[TOTAL_SOLUTION_TIME] > slatpl.elapsed) THEN 1 ELSE 0 END AS [VIOLACAO_SLA_NOVO] FROM call_req cr JOIN attached_sla ON cr.persid = attached_sla.mapped_cr JOIN srv_desc ON attached_sla.map_sdsc = srv_desc.persid JOIN att_evt ON cr.persid = att_evt.obj_id JOIN evt ON att_evt.event_tmpl = evt.persid JOIN slatpl ON srv_desc.persid = slatpl.service_type JOIN CTE_SOLICITACAO_SLA_CICLO solicitacoes ON cr.ref_num = solicitacoes.[CHAMADO] WHERE DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' AND (cr.status = 'CL' AND cr.status != 'CNCL') AND cr.type = 'R' AND solicitacoes.[COD_SOLUCAO] IN ('TSS1', 'TSS2', 'TSS3', 'TSS4') AND slatpl.object_type = 'cr' AND (evt.sym = 'Violação de SLA' AND slatpl.sym = 'Violar') -- nome_evt em template e nome_evt no chamado GROUP BY cr.ref_num, srv_desc.sym, slatpl.elapsed, cr.sla_violation, solicitacoes.[TOTAL_SOLUTION_TIME], solicitacoes.[COD_SOLUCAO] ), -- SG1N2 - Mensal CTE_Chamados AS ( SELECT cr.ref_num AS [CHAMADO], z_TPS.code AS [COD_SOLUCAO], CS.VIOLACAO_SLA_NOVO -- Adicionando a coluna VIOLACAO_SLA_NOVO da CTE_CHAMADO_SLA_CR FROM call_req cr JOIN ca_contact grp ON cr.group_id = grp.contact_uuid JOIN prob_ctg pcat ON cr.category = pcat.persid JOIN z_TPS ON pcat.ztempo_servico = z_TPS.id LEFT JOIN CTE_CHAMADO_SLA_CR CS ON cr.ref_num = CS.CHAMADO -- Associando a nova coluna usando o CHAMADO WHERE (cr.type = 'R' AND cr.status = 'CL' ) AND z_TPS.code IN ('TSS1', 'TSS2', 'TSS3', 'TSS4') AND (grp.contact_type = 2308 AND grp.last_name LIKE 'N2_%' ) AND grp.last_name NOT IN ('N2_CABEAMENTO') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' ), All_Solutions AS ( SELECT COD_SOLUCAO FROM (VALUES ('TSS1'), ('TSS2'), ('TSS3'), ('TSS4')) AS T(COD_SOLUCAO) ) -- Consulta final usando a nova coluna de SLA SELECT A.COD_SOLUCAO AS priority, COUNT(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1 END) AS fulfilled, -- Utilizando a nova coluna COUNT(C.COD_SOLUCAO) AS total, ISNULL(AVG(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1.0 ELSE 0 END), 0) AS result -- Utilizando a nova coluna FROM All_Solutions AS A LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO GROUP BY A.COD_SOLUCAO ORDER BY A.COD_SOLUCAO; GO ``` ### SG2N2 - Mensal - SQL ANTIGO $$ \frac{SolicitaçõesTSSx – SolicitaçõesTSSxEncerradosAtraso}{SolicitaçõesTSSx} $$ - Tipo = Solicitação - Status = Fechada - Grupo Solucionador = Todos do N2 exceto ('N2_CABEAMENTO', 'N2_SISTEMAS') - Grupo de prioridades = TSS5, TSS6, TSS7, TSS8, TSS9, TSS10 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` > sql >``` *sql > WITH CTE_Chamados AS ( > SELECT DISTINCT CHAMADO, SLA_VIOLADO, >COD_SOLUCAO > FROM dbo.CHAMADOS > WHERE TIPO_CHAMADO = 'Solicitação' > AND STATUS = 'Fechada' > AND GRUPO_SOLUCIONADOR LIKE 'N2_%' > AND GRUPO_SOLUCIONADOR NOT IN('N2_CABEAMENTO', 'N2_SISTEMAS') > AND DATEADD(ss, DATA_SOLUCAO - 10800, >'19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND COD_SOLUCAO IN ('TSS5', 'TSS6', 'TSS7', 'TSS8', 'TSS9', 'TSS10') > ), > All_Solutions AS ( > SELECT COD_SOLUCAO > FROM (VALUES ('TSS5'), ('TSS6'), ('TSS7'), ('TSS8'), ('TSS9'), ('TSS10')) AS T(COD_SOLUCAO) > ) > SELECT > A.COD_SOLUCAO AS priority, > COUNT(CASE WHEN C.SLA_VIOLADO = 0 THEN 1 END) AS fulfilled, > COUNT(C.COD_SOLUCAO) AS total, > ISNULL(AVG(CASE WHEN C.SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END), 0) AS result > FROM All_Solutions AS A > LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO > GROUP BY A.COD_SOLUCAO > ORDER BY A.COD_SOLUCAO; ### SG2N2 - Mensal - SQL NOVO ``` *sql-- CTE_SOLICITACAO_SLA_CICLO WITH CTE_SOLICITACAO_SLA_CICLO AS ( SELECT cr.ref_num AS [CHAMADO], SUM(CAST(zciclo_cr.z_dur_Time_spent_group AS INT)) AS [TOTAL_SOLUTION_TIME], cr.sla_violation AS [SLA_VIOLADO_CA], z_TPS.code AS [COD_SOLUCAO] FROM call_req cr JOIN z_ciclo_de_vida_cr zciclo_cr ON cr.persid = zciclo_cr.z_srl_Persistent_id JOIN prob_ctg pcat ON pcat.persid = cr.category JOIN z_TPS ON pcat.ztempo_servico = z_TPS.id WHERE cr.type = 'R' AND z_TPS.code IN ('TSS5', 'TSS6', 'TSS7', 'TSS8', 'TSS9', 'TSS10') AND (cr.status = 'CL' AND cr.status != 'CNCL') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' GROUP BY cr.ref_num, cr.sla_violation, z_TPS.code ), -- CTE_CHAMADO_SLA_CR CTE_CHAMADO_SLA_CR AS ( SELECT DISTINCT cr.ref_num AS [CHAMADO], CASE WHEN (solicitacoes.[TOTAL_SOLUTION_TIME] > slatpl.elapsed) THEN 1 ELSE 0 END AS [VIOLACAO_SLA_NOVO] FROM call_req cr JOIN attached_sla ON cr.persid = attached_sla.mapped_cr JOIN srv_desc ON attached_sla.map_sdsc = srv_desc.persid JOIN att_evt ON cr.persid = att_evt.obj_id JOIN evt ON att_evt.event_tmpl = evt.persid JOIN slatpl ON srv_desc.persid = slatpl.service_type JOIN CTE_SOLICITACAO_SLA_CICLO solicitacoes ON cr.ref_num = solicitacoes.[CHAMADO] WHERE DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' AND (cr.status = 'CL' AND cr.status != 'CNCL') AND cr.type = 'R' AND solicitacoes.[COD_SOLUCAO] IN ('TSS5', 'TSS6', 'TSS7', 'TSS8', 'TSS9', 'TSS10') AND slatpl.object_type = 'cr' AND (evt.sym = 'Violação de SLA' AND slatpl.sym = 'Violar') -- nome_evt em template e nome_evt no chamado GROUP BY cr.ref_num, srv_desc.sym, slatpl.elapsed, cr.sla_violation, solicitacoes.[TOTAL_SOLUTION_TIME], solicitacoes.[COD_SOLUCAO] ), -- SG2N2 - Mensal CTE_Chamados AS ( SELECT cr.ref_num AS [CHAMADO], z_TPS.code AS [COD_SOLUCAO], CS.VIOLACAO_SLA_NOVO -- Adicionando a coluna VIOLACAO_SLA_NOVO da CTE_CHAMADO_SLA_CR FROM call_req cr JOIN ca_contact grp ON cr.group_id = grp.contact_uuid JOIN prob_ctg pcat ON cr.category = pcat.persid JOIN z_TPS ON pcat.ztempo_servico = z_TPS.id LEFT JOIN CTE_CHAMADO_SLA_CR CS ON cr.ref_num = CS.CHAMADO -- Associando a nova coluna usando o CHAMADO WHERE (cr.type = 'R' AND cr.status = 'CL' ) AND z_TPS.code IN ('TSS5', 'TSS6', 'TSS7', 'TSS8', 'TSS9', 'TSS10') AND (grp.contact_type = 2308 AND grp.last_name LIKE 'N2_%' ) AND grp.last_name NOT IN ('N2_CABEAMENTO') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' ), All_Solutions AS ( SELECT COD_SOLUCAO FROM (VALUES ('TSS5'), ('TSS6'), ('TSS7'), ('TSS8'), ('TSS9'), ('TSS10')) AS T(COD_SOLUCAO) ) -- Consulta final usando a nova coluna de SLA SELECT A.COD_SOLUCAO AS priority, COUNT(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1 END) AS fulfilled, -- Utilizando a nova coluna COUNT(C.COD_SOLUCAO) AS total, ISNULL(AVG(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1.0 ELSE 0 END), 0) AS result -- Utilizando a nova coluna FROM All_Solutions AS A LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO GROUP BY A.COD_SOLUCAO ORDER BY A.COD_SOLUCAO; GO ``` ### RG1N2 - Mensal - SLA ANTIGO $$ \frac{RotinasTSRx – RotinasTSRxEncerradosAtraso}{RotinasTSRx} $$ - Tipo = Rotina - Status = Fechada - Grupo Solucionador = Todos do N2, exceto ('N2_CABEAMENTO', 'N2_SISTEMAS') - Grupo de prioridades = TSR1, TSR2, TSR3 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` > sql >``` *sql > WITH CTE_Chamados AS ( > SELECT DISTINCT CHAMADO, SLA_VIOLADO, >COD_SOLUCAO > FROM dbo.CHAMADOS > WHERE TIPO_CHAMADO = 'Solicitação' > AND STATUS = 'Fechada' > AND GRUPO_SOLUCIONADOR LIKE 'N2_%' > AND GRUPO_SOLUCIONADOR NOT IN('N2_CABEAMENTO', 'N2_SISTEMAS') > AND DATEADD(ss, DATA_SOLUCAO - 10800, >'19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND COD_SOLUCAO IN ('TSR1', 'TSR2', 'TSR3') > ), > All_Solutions AS ( > SELECT COD_SOLUCAO > FROM (VALUES ('TSR1'), ('TSR2'), ('TSR3')) AS T(COD_SOLUCAO) > ) > SELECT > A.COD_SOLUCAO AS priority, > COUNT(CASE WHEN C.SLA_VIOLADO = 0 THEN 1 END) AS fulfilled, > COUNT(C.COD_SOLUCAO) AS total, > ISNULL(AVG(CASE WHEN C.SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END), 0) AS result > FROM All_Solutions AS A > LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO > GROUP BY A.COD_SOLUCAO > ORDER BY A.COD_SOLUCAO; ### RG1N2 - Mensal - SQL NOVO ``` *sql -- CTE_SOLICITACAO_SLA_CICLO WITH CTE_SOLICITACAO_SLA_CICLO AS ( SELECT cr.ref_num AS [CHAMADO], SUM(CAST(zciclo_cr.z_dur_Time_spent_group AS INT)) AS [TOTAL_SOLUTION_TIME], cr.sla_violation AS [SLA_VIOLADO_CA], z_TPS.code AS [COD_SOLUCAO] FROM call_req cr JOIN z_ciclo_de_vida_cr zciclo_cr ON cr.persid = zciclo_cr.z_srl_Persistent_id JOIN prob_ctg pcat ON pcat.persid = cr.category JOIN z_TPS ON pcat.ztempo_servico = z_TPS.id WHERE cr.type = 'R' AND z_TPS.code IN ('TSR1', 'TSR2', 'TSR3') AND (cr.status = 'CL' AND cr.status != 'CNCL') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' GROUP BY cr.ref_num, cr.sla_violation, z_TPS.code ), -- CTE_CHAMADO_SLA_CR CTE_CHAMADO_SLA_CR AS ( SELECT DISTINCT cr.ref_num AS [CHAMADO], CASE WHEN (solicitacoes.[TOTAL_SOLUTION_TIME] > slatpl.elapsed) THEN 1 ELSE 0 END AS [VIOLACAO_SLA_NOVO] FROM call_req cr JOIN attached_sla ON cr.persid = attached_sla.mapped_cr JOIN srv_desc ON attached_sla.map_sdsc = srv_desc.persid JOIN att_evt ON cr.persid = att_evt.obj_id JOIN evt ON att_evt.event_tmpl = evt.persid JOIN slatpl ON srv_desc.persid = slatpl.service_type JOIN CTE_SOLICITACAO_SLA_CICLO solicitacoes ON cr.ref_num = solicitacoes.[CHAMADO] WHERE DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' AND (cr.status = 'CL' AND cr.status != 'CNCL') AND cr.type = 'R' AND solicitacoes.[COD_SOLUCAO] IN ('TSR1', 'TSR2', 'TSR3') AND slatpl.object_type = 'cr' AND (evt.sym = 'Violação de SLA' AND slatpl.sym = 'Violar') -- nome_evt em template e nome_evt no chamado GROUP BY cr.ref_num, srv_desc.sym, slatpl.elapsed, cr.sla_violation, solicitacoes.[TOTAL_SOLUTION_TIME], solicitacoes.[COD_SOLUCAO] )``` -- RG1N2 - Mensal CTE_Chamados AS ( SELECT cr.ref_num AS [CHAMADO], z_TPS.code AS [COD_SOLUCAO], CS.VIOLACAO_SLA_NOVO -- Adicionando a coluna VIOLACAO_SLA_NOVO da CTE_CHAMADO_SLA_CR FROM call_req cr JOIN ca_contact grp ON cr.group_id = grp.contact_uuid JOIN prob_ctg pcat ON cr.category = pcat.persid JOIN z_TPS ON pcat.ztempo_servico = z_TPS.id LEFT JOIN CTE_CHAMADO_SLA_CR CS ON cr.ref_num = CS.CHAMADO -- Associando a nova coluna usando o CHAMADO WHERE (cr.type = 'R' AND cr.status = 'CL' ) AND z_TPS.code IN ('TSR1', 'TSR2', 'TSR3') AND (grp.contact_type = 2308 AND grp.last_name LIKE 'N2_%' ) AND grp.last_name NOT IN ('N2_CABEAMENTO') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' ), All_Solutions AS ( SELECT COD_SOLUCAO FROM (VALUES ('TSR1'), ('TSR2'), ('TSR3')) AS T(COD_SOLUCAO) ) -- Consulta final usando a nova coluna de SLA SELECT A.COD_SOLUCAO AS priority, COUNT(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1 END) AS fulfilled, -- Utilizando a nova coluna COUNT(C.COD_SOLUCAO) AS total, ISNULL(AVG(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1.0 ELSE 0 END), 0) AS result -- Utilizando a nova coluna FROM All_Solutions AS A LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO GROUP BY A.COD_SOLUCAO ORDER BY A.COD_SOLUCAO; GO ``` ### RG2N2 - Mensal - SQL ANTIGO $$ \frac{RotinasTSRx – RotinasTSRxEncerradosAtraso}{RotinasTSRx} $$ - Tipo = Rotina - Status = Fechada - Grupo Solucionador = Todos do N2, exceto ('N2_CABEAMENTO', 'N2_SISTEMAS') - Grupo de prioridades = TSR4, TSR5 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` > sql >``` *sql > WITH CTE_Chamados AS ( > SELECT DISTINCT CHAMADO, SLA_VIOLADO, >COD_SOLUCAO > FROM dbo.CHAMADOS > WHERE TIPO_CHAMADO = 'Solicitação' > AND STATUS = 'Fechada' > AND GRUPO_SOLUCIONADOR LIKE 'N2_%' > AND GRUPO_SOLUCIONADOR NOT IN('N2_CABEAMENTO', 'N2_SISTEMAS') > AND DATEADD(ss, DATA_SOLUCAO - 10800, >'19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND COD_SOLUCAO IN ('TSR4', 'TSR5'), > All_Solutions AS ( > SELECT COD_SOLUCAO > FROM (VALUES ('TSR4'), ('TSR5')) AS T(COD_SOLUCAO) > ) > SELECT > A.COD_SOLUCAO AS priority, > COUNT(CASE WHEN C.SLA_VIOLADO = 0 THEN 1 END) AS fulfilled, > COUNT(C.COD_SOLUCAO) AS total, > ISNULL(AVG(CASE WHEN C.SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END), 0) AS result > FROM All_Solutions AS A > LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO > GROUP BY A.COD_SOLUCAO > ORDER BY A.COD_SOLUCAO; ### RG2N2 - Mensal - SQL NOVO ``` *sql -- CTE_SOLICITACAO_SLA_CICLO WITH CTE_SOLICITACAO_SLA_CICLO AS ( SELECT cr.ref_num AS [CHAMADO], SUM(CAST(zciclo_cr.z_dur_Time_spent_group AS INT)) AS [TOTAL_SOLUTION_TIME], cr.sla_violation AS [SLA_VIOLADO_CA], z_TPS.code AS [COD_SOLUCAO] FROM call_req cr JOIN z_ciclo_de_vida_cr zciclo_cr ON cr.persid = zciclo_cr.z_srl_Persistent_id JOIN prob_ctg pcat ON pcat.persid = cr.category JOIN z_TPS ON pcat.ztempo_servico = z_TPS.id WHERE cr.type = 'R' AND z_TPS.code IN ('TSR4', 'TSR5') AND (cr.status = 'CL' AND cr.status != 'CNCL') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' GROUP BY cr.ref_num, cr.sla_violation, z_TPS.code ), -- CTE_CHAMADO_SLA_CR CTE_CHAMADO_SLA_CR AS ( SELECT DISTINCT cr.ref_num AS [CHAMADO], CASE WHEN (solicitacoes.[TOTAL_SOLUTION_TIME] > slatpl.elapsed) THEN 1 ELSE 0 END AS [VIOLACAO_SLA_NOVO] FROM call_req cr JOIN attached_sla ON cr.persid = attached_sla.mapped_cr JOIN srv_desc ON attached_sla.map_sdsc = srv_desc.persid JOIN att_evt ON cr.persid = att_evt.obj_id JOIN evt ON att_evt.event_tmpl = evt.persid JOIN slatpl ON srv_desc.persid = slatpl.service_type JOIN CTE_SOLICITACAO_SLA_CICLO solicitacoes ON cr.ref_num = solicitacoes.[CHAMADO] WHERE DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' AND (cr.status = 'CL' AND cr.status != 'CNCL') AND cr.type = 'R' AND solicitacoes.[COD_SOLUCAO] IN ('TSR4', 'TSR5') AND slatpl.object_type = 'cr' AND (evt.sym = 'Violação de SLA' AND slatpl.sym = 'Violar') -- nome_evt em template e nome_evt no chamado GROUP BY cr.ref_num, srv_desc.sym, slatpl.elapsed, cr.sla_violation, solicitacoes.[TOTAL_SOLUTION_TIME], solicitacoes.[COD_SOLUCAO] ), -- RG1N2 - Mensal CTE_Chamados AS ( SELECT cr.ref_num AS [CHAMADO], z_TPS.code AS [COD_SOLUCAO], CS.VIOLACAO_SLA_NOVO -- Adicionando a coluna VIOLACAO_SLA_NOVO da CTE_CHAMADO_SLA_CR FROM call_req cr JOIN ca_contact grp ON cr.group_id = grp.contact_uuid JOIN prob_ctg pcat ON cr.category = pcat.persid JOIN z_TPS ON pcat.ztempo_servico = z_TPS.id LEFT JOIN CTE_CHAMADO_SLA_CR CS ON cr.ref_num = CS.CHAMADO -- Associando a nova coluna usando o CHAMADO WHERE (cr.type = 'R' AND cr.status = 'CL' ) AND z_TPS.code IN ('TSR4', 'TSR5') AND (grp.contact_type = 2308 AND grp.last_name LIKE 'N2_%' ) AND grp.last_name NOT IN ('N2_CABEAMENTO') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' ), All_Solutions AS ( SELECT COD_SOLUCAO FROM (VALUES ('TSR4'), ('TSR5')) AS T(COD_SOLUCAO) ) -- Consulta final usando a nova coluna de SLA SELECT A.COD_SOLUCAO AS priority, COUNT(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1 END) AS fulfilled, -- Utilizando a nova coluna COUNT(C.COD_SOLUCAO) AS total, ISNULL(AVG(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1.0 ELSE 0 END), 0) AS result -- Utilizando a nova coluna FROM All_Solutions AS A LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO GROUP BY A.COD_SOLUCAO ORDER BY A.COD_SOLUCAO; GO ``` ## XGnN3 ### IG1N3 - Mensal - SQL ANTIGO $$ \frac{IncidentesTSIx – IncidentesTSIxEncerradosAtraso}{IncidentesTSIx} $$ - Tipo = Incidente - Status = Fechada - Grupo Solucionador = N3_SUPORTE, N3_REDES, N3_INFRA, N3_BANCO DE DADOS - Grupo de prioridades = TSI1, TSI2, TSI3, TSI4 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` > sql >```sql > WITH CTE_Chamados AS ( > SELECT DISTINCT CHAMADO, SLA_VIOLADO, COD_SOLUCAO > FROM dbo.CHAMADOS > WHERE TIPO_CHAMADO = 'Incidente' > AND STATUS = 'Fechada' > AND GRUPO_SOLUCIONADOR IN ('N3_SUPORTE', 'N3_REDES', 'N3_INFRA', 'N3_BANCO DE DADOS') > AND DATEADD(ss, DATA_SOLUCAO - 10800, >'19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND COD_SOLUCAO IN ('TSI1', 'TSI2', 'TSI3', 'TSI4') > ), > CTE_SLA_Violado AS ( > SELECT COUNT(*) AS Count_SLA_Violado > FROM CTE_Chamados > WHERE SLA_VIOLADO != 0 > ), > CTE_Total AS ( > SELECT COUNT(*) AS Count_Total > FROM CTE_Chamados > ) > > SELECT > CTE_Total.Count_Total - > CTE_SLA_Violado.Count_SLA_Violado AS ATENDIDOS, > CTE_Total.Count_Total AS TOTAL, > (CTE_Total.Count_Total - > CTE_SLA_Violado.Count_SLA_Violado) * 1.0 / > NULLIF(CTE_Total.Count_Total, 0) AS IG1N3 > FROM CTE_SLA_Violado, CTE_Total; > ``` ### IG1N3 - Mensal - SQL NOVO ``` *sql WITH CTE_INCIDENTE_SLA_CICLO AS ( SELECT cr.ref_num AS [CHAMADO], SUM(CAST(zciclo_cr.z_dur_Time_spent_group AS INT)) AS [TOTAL_SOLUTION_TIME], cr.sla_violation AS [SLA_VIOLADO_CA], CASE WHEN pri.sym = 'P1' THEN 'TSI1' WHEN pri.sym = 'P2' THEN 'TSI2' WHEN pri.sym = 'P3' THEN 'TSI3' WHEN pri.sym = 'P4' THEN 'TSI4' WHEN pri.sym = 'P5' THEN 'TSI5' WHEN pri.sym = 'P6' THEN 'TSI6' WHEN pri.sym = 'P7' THEN 'TSI7' ELSE pri.sym END as [COD_SOLUCAO] FROM call_req cr JOIN z_ciclo_de_vida_cr zciclo_cr ON cr.persid = zciclo_cr.z_srl_Persistent_id JOIN pri ON cr.priority = pri.enum WHERE cr.type = 'I' AND pri.sym IN ('P1', 'P2', 'P3', 'P4') AND (cr.status = 'CL' AND cr.status != 'CNCL') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' GROUP BY cr.ref_num, pri.sym, cr.sla_violation ), -- CTE_CHAMADO_SLA_CR CTE_CHAMADO_SLA_CR AS ( SELECT DISTINCT cr.ref_num AS [CHAMADO], CASE WHEN (incidentes.[TOTAL_SOLUTION_TIME] > slatpl.elapsed) THEN 1 ELSE 0 END AS [VIOLACAO_SLA_NOVO] FROM call_req cr JOIN attached_sla ON cr.persid = attached_sla.mapped_cr JOIN srv_desc ON attached_sla.map_sdsc = srv_desc.persid JOIN att_evt ON cr.persid = att_evt.obj_id JOIN evt ON att_evt.event_tmpl = evt.persid JOIN slatpl ON srv_desc.persid = slatpl.service_type JOIN CTE_INCIDENTE_SLA_CICLO incidentes ON cr.ref_num = incidentes.[CHAMADO] WHERE DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' AND (cr.status = 'CL' AND cr.status != 'CNCL') AND cr.type = 'I' AND incidentes.[COD_SOLUCAO] IN ('TSI1', 'TSI2', 'TSI3', 'TSI4') AND slatpl.object_type = 'cr' AND (evt.sym = 'Violação de SLA' AND slatpl.sym = 'Violar') -- nome_evt em template e nome_evt no chamado GROUP BY cr.ref_num, srv_desc.sym, slatpl.elapsed, cr.sla_violation, incidentes.[TOTAL_SOLUTION_TIME], incidentes.[COD_SOLUCAO] ), -- IG1N2 - Mensal CTE_Chamados AS ( SELECT cr.ref_num AS [CHAMADO], CASE WHEN pri.sym = 'P1' THEN 'TSI1' WHEN pri.sym = 'P2' THEN 'TSI2' WHEN pri.sym = 'P3' THEN 'TSI3' WHEN pri.sym = 'P4' THEN 'TSI4' WHEN pri.sym = 'P5' THEN 'TSI5' WHEN pri.sym = 'P6' THEN 'TSI6' WHEN pri.sym = 'P7' THEN 'TSI7' ELSE pri.sym END as [COD_SOLUCAO], CS.VIOLACAO_SLA_NOVO -- Adicionando a coluna VIOLACAO_SLA_NOVO da CTE_CHAMADO_SLA_CR FROM call_req cr JOIN ca_contact grp ON cr.group_id = grp.contact_uuid JOIN pri ON cr.priority = pri.enum LEFT JOIN CTE_CHAMADO_SLA_CR CS ON cr.ref_num = CS.CHAMADO -- Associando a nova coluna usando o CHAMADO WHERE (cr.type = 'I' AND cr.status = 'CL' ) AND pri.sym IN ('P1', 'P2', 'P3', 'P4') AND (grp.contact_type = 2308 ) AND grp.last_name IN ('N3_SUPORTE', 'N3_REDES', 'N3_INFRA', 'N3_BANCO DE DADOS', 'N3_SEGURANÇA') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' ), All_Solutions AS ( SELECT COD_SOLUCAO FROM (VALUES ('TSI1'), ('TSI2'), ('TSI3'), ('TSI4')) AS T(COD_SOLUCAO) ) -- Consulta final usando a nova coluna de SLA SELECT A.COD_SOLUCAO AS priority, COUNT(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1 END) AS fulfilled, -- Utilizando a nova coluna COUNT(C.COD_SOLUCAO) AS total, ISNULL(AVG(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1.0 ELSE 0 END), 0) AS result -- Utilizando a nova coluna FROM All_Solutions AS A LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO GROUP BY A.COD_SOLUCAO ORDER BY A.COD_SOLUCAO; ``` ### IG2N3 - Mensal - SQL ANTIGO $$ \frac{IncidentesTSIx – IncidentesTSIxEncerradosAtraso}{IncidentesTSIx} $$ - Tipo = Incidente - Status = Fechada - Grupo Solucionador = N3_SUPORTE, N3_REDES, N3_INFRA, N3_BANCO DE DADOS - Grupo de prioridades = TSI5, TSI6, TSI7 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` > sql >``` *sql > WITH CTE_Chamados AS ( > SELECT DISTINCT CHAMADO, SLA_VIOLADO, >COD_SOLUCAO > FROM dbo.CHAMADOS > WHERE TIPO_CHAMADO = 'Incidente' > AND STATUS = 'Fechada' > AND GRUPO_SOLUCIONADOR IN ('N3_SUPORTE', 'N3_REDES', 'N3_INFRA', 'N3_BANCO DE DADOS') > AND DATEADD(ss, DATA_SOLUCAO - 10800, >'19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND COD_SOLUCAO IN ('TSI5', 'TSI6', 'TSI7') > ), > All_Solutions AS ( > SELECT COD_SOLUCAO > FROM (VALUES ('TSI5'), ('TSI6'), ('TSI7')) AS T(COD_SOLUCAO) > ) > SELECT > A.COD_SOLUCAO AS priority, > COUNT(CASE WHEN C.SLA_VIOLADO = 0 THEN 1 END) AS fulfilled, > COUNT(C.COD_SOLUCAO) AS total, > ISNULL(AVG(CASE WHEN C.SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END), 0) AS result > FROM All_Solutions AS A > LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO > GROUP BY A.COD_SOLUCAO > ORDER BY A.COD_SOLUCAO; ### IG2N3 - Mensal - SQL NOVO ``` *sql -- IG2N3 -- CTE_INCIDENTE_SLA_CICLO WITH CTE_INCIDENTE_SLA_CICLO AS ( SELECT cr.ref_num AS [CHAMADO], SUM(CAST(zciclo_cr.z_dur_Time_spent_group AS INT)) AS [TOTAL_SOLUTION_TIME], cr.sla_violation AS [SLA_VIOLADO_CA], CASE WHEN pri.sym = 'P1' THEN 'TSI1' WHEN pri.sym = 'P2' THEN 'TSI2' WHEN pri.sym = 'P3' THEN 'TSI3' WHEN pri.sym = 'P4' THEN 'TSI4' WHEN pri.sym = 'P5' THEN 'TSI5' WHEN pri.sym = 'P6' THEN 'TSI6' WHEN pri.sym = 'P7' THEN 'TSI7' ELSE pri.sym END as [COD_SOLUCAO] FROM call_req cr JOIN z_ciclo_de_vida_cr zciclo_cr ON cr.persid = zciclo_cr.z_srl_Persistent_id JOIN pri ON cr.priority = pri.enum WHERE cr.type = 'I' AND pri.sym IN ('P5', 'P6', 'P7') AND (cr.status = 'CL' AND cr.status != 'CNCL') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' GROUP BY cr.ref_num, pri.sym, cr.sla_violation ), -- CTE_CHAMADO_SLA_CR CTE_CHAMADO_SLA_CR AS ( SELECT DISTINCT cr.ref_num AS [CHAMADO], CASE WHEN (incidentes.[TOTAL_SOLUTION_TIME] > slatpl.elapsed) THEN 1 ELSE 0 END AS [VIOLACAO_SLA_NOVO] FROM call_req cr JOIN attached_sla ON cr.persid = attached_sla.mapped_cr JOIN srv_desc ON attached_sla.map_sdsc = srv_desc.persid JOIN att_evt ON cr.persid = att_evt.obj_id JOIN evt ON att_evt.event_tmpl = evt.persid JOIN slatpl ON srv_desc.persid = slatpl.service_type JOIN CTE_INCIDENTE_SLA_CICLO incidentes ON cr.ref_num = incidentes.[CHAMADO] WHERE DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' AND (cr.status = 'CL' AND cr.status != 'CNCL') AND cr.type = 'I' AND incidentes.[COD_SOLUCAO] IN ('TSI5', 'TSI6', 'TSI7') AND slatpl.object_type = 'cr' AND (evt.sym = 'Violação de SLA' AND slatpl.sym = 'Violar') -- nome_evt em template e nome_evt no chamado GROUP BY cr.ref_num, srv_desc.sym, slatpl.elapsed, cr.sla_violation, incidentes.[TOTAL_SOLUTION_TIME], incidentes.[COD_SOLUCAO] ), -- IG2N3 - Mensal CTE_Chamados AS ( SELECT cr.ref_num AS [CHAMADO], CASE WHEN pri.sym = 'P1' THEN 'TSI1' WHEN pri.sym = 'P2' THEN 'TSI2' WHEN pri.sym = 'P3' THEN 'TSI3' WHEN pri.sym = 'P4' THEN 'TSI4' WHEN pri.sym = 'P5' THEN 'TSI5' WHEN pri.sym = 'P6' THEN 'TSI6' WHEN pri.sym = 'P7' THEN 'TSI7' ELSE pri.sym END as [COD_SOLUCAO], CS.VIOLACAO_SLA_NOVO -- Adicionando a coluna VIOLACAO_SLA_NOVO da CTE_CHAMADO_SLA_CR FROM call_req cr JOIN ca_contact grp ON cr.group_id = grp.contact_uuid JOIN pri ON cr.priority = pri.enum LEFT JOIN CTE_CHAMADO_SLA_CR CS ON cr.ref_num = CS.CHAMADO -- Associando a nova coluna usando o CHAMADO WHERE (cr.type = 'I' AND cr.status = 'CL' ) AND pri.sym IN ('P5', 'P6', 'P7') AND (grp.contact_type = 2308) AND grp.last_name IN ('N3_SUPORTE', 'N3_REDES', 'N3_INFRA', 'N3_BANCO DE DADOS', 'N3_SEGURANÇA') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' ), All_Solutions AS ( SELECT COD_SOLUCAO FROM (VALUES ('TSI5'), ('TSI6'), ('TSI7')) AS T(COD_SOLUCAO) ) -- Consulta final usando a nova coluna de SLA SELECT A.COD_SOLUCAO AS priority, COUNT(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1 END) AS fulfilled, -- Utilizando a nova coluna COUNT(C.COD_SOLUCAO) AS total, ISNULL(AVG(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1.0 ELSE 0 END), 0) AS result -- Utilizando a nova coluna FROM All_Solutions AS A LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO GROUP BY A.COD_SOLUCAO ORDER BY A.COD_SOLUCAO; ``` ### SG1N3 - Mensal $$ \frac{SolicitaçõesTSSx – SolicitaçõesTSSxEncerradosAtraso}{SolicitaçõesTSSx} $$ - Tipo = Solicitação - Status = Fechada - Grupo Solucionador = N3_SUPORTE, N3_REDES, N3_INFRA, N3_BANCO DE DADOS - Grupo de prioridades = TSS1, TSS2, TSS3, TSS4 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Bases usadas: CHAMADOS, TAREFASCHAMADOS, TAREFASRDMS - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` - Campos utilizados dentro da base `dbo.TAREFASCHAMADOS`: - `ID` - `SLA_VIOLADO` - `COD_SOLUCAO_TAREFA` - `DATA_FINAL_TAREFA` - `GRUPO_TAREFA` - Campos utilizados dentro da base `dbo.TAREFASRDMS`: - `ID` - `SLA_VIOLADO` - `COD_SOLUCAO_TAREFA` - `DATA_FINAL_TAREFA` - `GRUPO_TAREFA` > sql >``` *sql > WITH CTE_Chamados AS ( > SELECT DISTINCT > c.CHAMADO, > NULL AS RDM, > NULL AS TASK, > c.SLA_VIOLADO, > c.COD_SOLUCAO > FROM dbo.CHAMADOS c > WHERE > c.TIPO_CHAMADO = 'Solicitação' > AND c.STATUS = 'Fechada' > AND c.GRUPO_SOLUCIONADOR IN ('N3_SUPORTE', 'N3_REDES', 'N3_INFRA', 'N3_BANCO DE DADOS') > AND DATEADD(ss, c.DATA_SOLUCAO - 10800, > '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND c.COD_SOLUCAO IN ('TSS1', 'TSS2', > 'TSS3', 'TSS4') > > UNION ALL > > SELECT DISTINCT > NULL AS CHAMADO, > NULL AS RDM, > tc.ID AS TASK, > tc.SLA_VIOLADO, > tc.COD_SOLUCAO_TAREFA AS COD_SOLUCAO > FROM dbo.TAREFASCHAMADOS tc > WHERE 1=1 > AND tc.GRUPO_TAREFA IN ('N3_SUPORTE', 'N3_REDES', 'N3_INFRA', 'N3_BANCO DE DADOS') > AND DATEADD(ss, tc.DATA_FINAL_TAREFA - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND tc.COD_SOLUCAO_TAREFA IN ('TSS1', 'TSS2', 'TSS3', 'TSS4') > > UNION ALL > > SELECT DISTINCT > NULL AS CHAMADO, > r.ID AS RDM, > NULL AS TASK, > r.SLA_VIOLADO, > r.COD_SOLUCAO_TAREFA AS COD_SOLUCAO > FROM dbo.TAREFASRDMS r > WHERE 1=1 > AND r.GRUPO_TAREFA IN ('N3_SUPORTE', 'N3_REDES', 'N3_INFRA', 'N3_BANCO DE DADOS') > AND DATEADD(ss, r.DATA_FINAL_TAREFA - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND r.COD_SOLUCAO_TAREFA IN ('TSS1', 'TSS2', 'TSS3', 'TSS4') > ), > All_Solutions AS ( > SELECT COD_SOLUCAO > FROM (VALUES ('TSS1'), ('TSS2'), ('TSS3'), ('TSS4')) AS T(COD_SOLUCAO) > ) > SELECT > A.COD_SOLUCAO AS priority, > COUNT(CASE WHEN C.SLA_VIOLADO = 0 THEN 1 END) AS fulfilled, > COUNT(C.COD_SOLUCAO) AS total, > ISNULL(AVG(CASE WHEN C.SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END), 0) AS result > FROM All_Solutions AS A > LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO > GROUP BY A.COD_SOLUCAO > ORDER BY A.COD_SOLUCAO; ### SG2N3 - Mensal $$ \frac{SolicitaçõesTSSx – SolicitaçõesTSSxEncerradosAtraso}{SolicitaçõesTSSx} $$ - Tipo = Solicitação - Status = Fechada - Grupo Solucionador = N3_SUPORTE, N3_REDES, N3_INFRA, N3_BANCO DE DADOS - Grupo de prioridades = TSS5, TSS6, TSS7, TSS8, TSS9, TSS10 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Bases usadas: CHAMADOS, TAREFASCHAMADOS, TAREFASRDMS - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` - Campos utilizados dentro da base `dbo.TAREFASCHAMADOS`: - `ID` - `SLA_VIOLADO` - `COD_SOLUCAO_TAREFA` - `DATA_FINAL_TAREFA` - `GRUPO_TAREFA` - Campos utilizados dentro da base `dbo.TAREFASRDMS`: - `ID` - `SLA_VIOLADO` - `COD_SOLUCAO_TAREFA` - `DATA_FINAL_TAREFA` - `GRUPO_TAREFA` > sql >``` *sql > WITH CTE_Chamados AS ( > SELECT DISTINCT > c.CHAMADO, > NULL AS RDM, > NULL AS TASK, > c.SLA_VIOLADO, > c.COD_SOLUCAO > FROM dbo.CHAMADOS c > WHERE > c.TIPO_CHAMADO = 'Solicitação' > AND c.STATUS = 'Fechada' > AND c.GRUPO_SOLUCIONADOR IN ('N3_SUPORTE', 'N3_REDES', 'N3_INFRA', 'N3_BANCO DE DADOS') > AND DATEADD(ss, c.DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND c.COD_SOLUCAO IN ('TSS5', 'TSS6', 'TSS7', 'TSS8', 'TSS9', 'TSS10') > > UNION ALL > > SELECT DISTINCT > NULL AS CHAMADO, > NULL AS RDM, > tc.ID AS TASK, > tc.SLA_VIOLADO, > tc.COD_SOLUCAO_TAREFA AS COD_SOLUCAO > FROM dbo.TAREFASCHAMADOS tc > WHERE 1=1 > AND tc.GRUPO_TAREFA IN ('N3_SUPORTE', 'N3_REDES', 'N3_INFRA', 'N3_BANCO DE DADOS') > AND DATEADD(ss, tc.DATA_FINAL_TAREFA - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND tc.COD_SOLUCAO_TAREFA IN ('TSS5', 'TSS6', 'TSS7', 'TSS8', 'TSS9', 'TSS10') > > UNION ALL > > SELECT DISTINCT > NULL AS CHAMADO, > r.ID AS RDM, > NULL AS TASK, > r.SLA_VIOLADO, > r.COD_SOLUCAO_TAREFA AS COD_SOLUCAO > FROM dbo.TAREFASRDMS r > WHERE 1=1 > AND r.GRUPO_TAREFA IN ('N3_SUPORTE', 'N3_REDES', 'N3_INFRA', 'N3_BANCO DE DADOS') > AND DATEADD(ss, r.DATA_FINAL_TAREFA - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND r.COD_SOLUCAO_TAREFA IN ('TSS5', 'TSS6', 'TSS7', 'TSS8', 'TSS9', 'TSS10') > ), > All_Solutions AS ( > SELECT COD_SOLUCAO > FROM (VALUES ('TSS5'), ('TSS6'), ('TSS7'), ('TSS8'), ('TSS9'), ('TSS10')) AS T(COD_SOLUCAO) > ) > SELECT > A.COD_SOLUCAO AS priority, > COUNT(CASE WHEN C.SLA_VIOLADO = 0 THEN 1 END) AS fulfilled, > COUNT(C.COD_SOLUCAO) AS total, > ISNULL(AVG(CASE WHEN C.SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END), 0) AS result > FROM All_Solutions AS A > LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO > GROUP BY A.COD_SOLUCAO > ORDER BY CASE WHEN A.COD_SOLUCAO = 'TSS10' THEN 1 ELSE 0 END, A.COD_SOLUCAO; ### RG1N3 - Mensal - SQL ANTIGO $$ \frac{RotinasTSRx – RotinasTSRxEncerradosAtraso}{RotinasTSRx} $$ - Tipo = Rotina - Status = Fechada - Grupo Solucionador = N3_SUPORTE, N3_REDES, N3_INFRA, N3_BANCO DE DADOS - Grupo de prioridades = TSR1, TSR2, TSR3 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` > sql >``` *sql > WITH CTE_Charmados AS ( > SELECT DISTINCT CHAMADO, SLA_VIOLADO > FROM dbo.CHAMADOS > WHERE TIPO_CHAMADO = 'Rotina' > AND STATUS = 'Fechada' > AND GRUPO_SOLUCIONADOR IN ('N3_SUPORTE', 'N3_REDES', 'N3_INFRA', 'N3_BANCO DE DADOS') > AND DATEADD(ss, DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND COD_SOLUCAO IN ('TSR1', 'TSR2', 'TSR3') >), >CTE_SLA_Violado AS ( > SELECT COUNT(*) AS Count_SLA_Violado > FROM CTE_Charmados > WHERE SLA_VIOLADO != 0 >), >CTE_Total AS ( > SELECT COUNT(*) AS Count_Total > FROM CTE_Charmados >) >SELECT > CTE_Total.Count_Total - CTE_SLA_Violado.Count_SLA_Violado AS ATENDIDOS, > CTE_Total.Count_Total AS TOTAL, > (CTE_Total.Count_Total - CTE_SLA_Violado.Count_SLA_Violado) * 1.0 / NULLIF(CTE_Total.Count_Total, 0) AS RG1N3 >FROM CTE_SLA_Violado, CTE_Total; ### RG1N3 - Mensal - SQL NOVO ``` *sql -- CTE_SOLICITACAO_SLA_CICLO WITH CTE_SOLICITACAO_SLA_CICLO AS ( SELECT cr.ref_num AS [CHAMADO], SUM(CAST(zciclo_cr.z_dur_Time_spent_group AS INT)) AS [TOTAL_SOLUTION_TIME], cr.sla_violation AS [SLA_VIOLADO_CA], z_TPS.code AS [COD_SOLUCAO] FROM call_req cr JOIN z_ciclo_de_vida_cr zciclo_cr ON cr.persid = zciclo_cr.z_srl_Persistent_id JOIN prob_ctg pcat ON pcat.persid = cr.category JOIN z_TPS ON pcat.ztempo_servico = z_TPS.id WHERE cr.type = 'R' AND z_TPS.code IN ('TSR1', 'TSR2', 'TSR3') AND (cr.status = 'CL' AND cr.status != 'CNCL') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' GROUP BY cr.ref_num, cr.sla_violation, z_TPS.code ), -- CTE_CHAMADO_SLA_CR CTE_CHAMADO_SLA_CR AS ( SELECT DISTINCT cr.ref_num AS [CHAMADO], CASE WHEN (solicitacoes.[TOTAL_SOLUTION_TIME] > slatpl.elapsed) THEN 1 ELSE 0 END AS [VIOLACAO_SLA_NOVO] FROM call_req cr JOIN attached_sla ON cr.persid = attached_sla.mapped_cr JOIN srv_desc ON attached_sla.map_sdsc = srv_desc.persid JOIN att_evt ON cr.persid = att_evt.obj_id JOIN evt ON att_evt.event_tmpl = evt.persid JOIN slatpl ON srv_desc.persid = slatpl.service_type JOIN CTE_SOLICITACAO_SLA_CICLO solicitacoes ON cr.ref_num = solicitacoes.[CHAMADO] WHERE DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' AND (cr.status = 'CL' AND cr.status != 'CNCL') AND cr.type = 'R' AND solicitacoes.[COD_SOLUCAO] IN ('TSR1', 'TSR2', 'TSR3') AND slatpl.object_type = 'cr' AND (evt.sym = 'Violação de SLA' AND slatpl.sym = 'Violar') -- nome_evt em template e nome_evt no chamado GROUP BY cr.ref_num, srv_desc.sym, slatpl.elapsed, cr.sla_violation, solicitacoes.[TOTAL_SOLUTION_TIME], solicitacoes.[COD_SOLUCAO] ), -- RG1N3 - Mensal CTE_Chamados AS ( SELECT cr.ref_num AS [CHAMADO], z_TPS.code AS [COD_SOLUCAO], CS.VIOLACAO_SLA_NOVO -- Adicionando a coluna VIOLACAO_SLA_NOVO da CTE_CHAMADO_SLA_CR FROM call_req cr JOIN ca_contact grp ON cr.group_id = grp.contact_uuid JOIN prob_ctg pcat ON cr.category = pcat.persid JOIN z_TPS ON pcat.ztempo_servico = z_TPS.id LEFT JOIN CTE_CHAMADO_SLA_CR CS ON cr.ref_num = CS.CHAMADO -- Associando a nova coluna usando o CHAMADO WHERE (cr.type = 'R' AND cr.status = 'CL' ) AND z_TPS.code IN ('TSR1', 'TSR2', 'TSR3') AND (grp.contact_type = 2308) AND grp.last_name IN ('N3_SUPORTE', 'N3_REDES', 'N3_INFRA', 'N3_BANCO DE DADOS', 'N3_SEGURANÇA') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' ), All_Solutions AS ( SELECT COD_SOLUCAO FROM (VALUES ('TSR1'), ('TSR2'), ('TSR3')) AS T(COD_SOLUCAO) ) -- Consulta final usando a nova coluna de SLA SELECT A.COD_SOLUCAO AS priority, COUNT(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1 END) AS fulfilled, -- Utilizando a nova coluna COUNT(C.COD_SOLUCAO) AS total, ISNULL(AVG(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1.0 ELSE 0 END), 0) AS result -- Utilizando a nova coluna FROM All_Solutions AS A LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO GROUP BY A.COD_SOLUCAO ORDER BY A.COD_SOLUCAO; ``` ### RG2N3 - Mensal - SQL ANTIGO $$ \frac{RotinasTSRx – RotinasTSRxEncerradosAtraso}{RotinasTSRx} $$ - Tipo = Rotina - Status = Fechada - Grupo Solucionador = N3_SUPORTE, N3_REDES, N3_INFRA, N3_BANCO DE DADOS - Grupo de prioridades = TSR4, TSR5 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` > sql >``` *sql > WITH CTE_Charmados AS ( > SELECT DISTINCT CHAMADO, SLA_VIOLADO > FROM dbo.CHAMADOS > WHERE TIPO_CHAMADO = 'Rotina' > AND STATUS = 'Fechada' > AND GRUPO_SOLUCIONADOR IN ('N3_SUPORTE', 'N3_REDES', 'N3_INFRA', 'N3_BANCO DE DADOS') > AND DATEADD(ss, DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND COD_SOLUCAO IN ('TSR4', 'TSR5') >), >CTE_SLA_Violado AS ( > SELECT COUNT(*) AS Count_SLA_Violado > FROM CTE_Charmados > WHERE SLA_VIOLADO != 0 >), >CTE_Total AS ( > SELECT COUNT(*) AS Count_Total > FROM CTE_Charmados >) >SELECT > CTE_Total.Count_Total - CTE_SLA_Violado.Count_SLA_Violado AS ATENDIDOS, > CTE_Total.Count_Total AS TOTAL, > (CTE_Total.Count_Total - CTE_SLA_Violado.Count_SLA_Violado) * 1.0 / NULLIF(CTE_Total.Count_Total, 0) AS RG2N3 >FROM CTE_SLA_Violado, CTE_Total; ### RG2N3 - Mensal - SQL NOVO ``` *sql WITH CTE_SOLICITACAO_SLA_CICLO AS ( SELECT cr.ref_num AS [CHAMADO], SUM(CAST(zciclo_cr.z_dur_Time_spent_group AS INT)) AS [TOTAL_SOLUTION_TIME], cr.sla_violation AS [SLA_VIOLADO_CA], z_TPS.code AS [COD_SOLUCAO] FROM call_req cr JOIN z_ciclo_de_vida_cr zciclo_cr ON cr.persid = zciclo_cr.z_srl_Persistent_id JOIN prob_ctg pcat ON pcat.persid = cr.category JOIN z_TPS ON pcat.ztempo_servico = z_TPS.id WHERE cr.type = 'R' AND z_TPS.code IN ('TSR4', 'TSR5') AND (cr.status = 'CL' AND cr.status != 'CNCL') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' GROUP BY cr.ref_num, cr.sla_violation, z_TPS.code ), -- CTE_CHAMADO_SLA_CR CTE_CHAMADO_SLA_CR AS ( SELECT DISTINCT cr.ref_num AS [CHAMADO], CASE WHEN (solicitacoes.[TOTAL_SOLUTION_TIME] > slatpl.elapsed) THEN 1 ELSE 0 END AS [VIOLACAO_SLA_NOVO] FROM call_req cr JOIN attached_sla ON cr.persid = attached_sla.mapped_cr JOIN srv_desc ON attached_sla.map_sdsc = srv_desc.persid JOIN att_evt ON cr.persid = att_evt.obj_id JOIN evt ON att_evt.event_tmpl = evt.persid JOIN slatpl ON srv_desc.persid = slatpl.service_type JOIN CTE_SOLICITACAO_SLA_CICLO solicitacoes ON cr.ref_num = solicitacoes.[CHAMADO] WHERE DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' AND (cr.status = 'CL' AND cr.status != 'CNCL') AND cr.type = 'R' AND solicitacoes.[COD_SOLUCAO] IN ('TSR4', 'TSR5') AND slatpl.object_type = 'cr' AND (evt.sym = 'Violação de SLA' AND slatpl.sym = 'Violar') -- nome_evt em template e nome_evt no chamado GROUP BY cr.ref_num, srv_desc.sym, slatpl.elapsed, cr.sla_violation, solicitacoes.[TOTAL_SOLUTION_TIME], solicitacoes.[COD_SOLUCAO] ), -- RG2N3 - Mensal CTE_Chamados AS ( SELECT cr.ref_num AS [CHAMADO], z_TPS.code AS [COD_SOLUCAO], CS.VIOLACAO_SLA_NOVO -- Adicionando a coluna VIOLACAO_SLA_NOVO da CTE_CHAMADO_SLA_CR FROM call_req cr JOIN ca_contact grp ON cr.group_id = grp.contact_uuid JOIN prob_ctg pcat ON cr.category = pcat.persid JOIN z_TPS ON pcat.ztempo_servico = z_TPS.id LEFT JOIN CTE_CHAMADO_SLA_CR CS ON cr.ref_num = CS.CHAMADO -- Associando a nova coluna usando o CHAMADO WHERE (cr.type = 'R' AND cr.status = 'CL' ) AND z_TPS.code IN ('TSR4', 'TSR5') AND (grp.contact_type = 2308) AND grp.last_name IN ('N3_SUPORTE', 'N3_REDES', 'N3_INFRA', 'N3_BANCO DE DADOS', 'N3_SEGURANÇA') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' ), All_Solutions AS ( SELECT COD_SOLUCAO FROM (VALUES ('TSR4'), ('TSR5')) AS T(COD_SOLUCAO) ) -- Consulta final usando a nova coluna de SLA SELECT A.COD_SOLUCAO AS priority, COUNT(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1 END) AS fulfilled, -- Utilizando a nova coluna COUNT(C.COD_SOLUCAO) AS total, ISNULL(AVG(CASE WHEN C.VIOLACAO_SLA_NOVO = 0 THEN 1.0 ELSE 0 END), 0) AS result -- Utilizando a nova coluna FROM All_Solutions AS A LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO GROUP BY A.COD_SOLUCAO ORDER BY A.COD_SOLUCAO; ``` ## XGnPM ### IG1PM - Mensal $$ \frac{IncidentesTSIx – IncidentesTSIxEncerradosAtraso}{IncidentesTSIx} $$ - Tipo = Incidente - Status = Fechada - Grupo Solucionador = PRODUÇÃO e NOC - Grupo de prioridades = TSI1, TSI2, TSI3, TSI4 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` - `DATA_ABERTURA` - `SLA_ATENDIDO` > sql >``` *sql > SELECT > COUNT(CASE WHEN SLA_VIOLADO = 0 THEN 1 END) AS ATENDIDOS, > COUNT(*) AS TOTAL, > AVG(CASE WHEN SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END) AS IG1PM >FROM ( > SELECT DISTINCT > C.CHAMADO, > C.SLA_VIOLADO, > C.SLA_ATENDIDO, > C.DATA_ABERTURA, > C.DATA_SOLUCAO, > C.COD_SOLUCAO > FROM dbo.CHAMADOS AS C > WHERE C.TIPO_CHAMADO = 'Incidente' > AND C.STATUS = 'Fechada' > AND C.GRUPO_SOLUCIONADOR IN ('PRODUÇÃO', 'NOC') > AND DATEADD(ss, C.DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND C.COD_SOLUCAO IN ('TSI1', 'TSI2', 'TSI3', 'TSI4') >) AS C; ### IG2PM - Mensal $$ \frac{IncidentesTSIx – IncidentesTSIxEncerradosAtraso}{IncidentesTSIx} $$ - Tipo = Incidente - Status = Fechada - Grupo Solucionador = PRODUÇÃO e NOC - Grupo de prioridades = TSI5, TSI6, TSI7 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` - `DATA_ABERTURA` - `SLA_ATENDIDO` > sql >``` *sql > SELECT > COUNT(CASE WHEN SLA_VIOLADO = 0 THEN 1 END) AS ATENDIDOS, > COUNT(*) AS TOTAL, > AVG(CASE WHEN SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END) AS IG2PM >FROM ( > SELECT DISTINCT > C.CHAMADO, > C.SLA_VIOLADO, > C.SLA_ATENDIDO, > C.DATA_ABERTURA, > C.DATA_SOLUCAO, > C.COD_SOLUCAO > FROM dbo.CHAMADOS AS C > WHERE C.TIPO_CHAMADO = 'Incidente' > AND C.STATUS = 'Fechada' > AND C.GRUPO_SOLUCIONADOR IN ('PRODUÇÃO', 'NOC') > AND DATEADD(ss, C.DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND C.COD_SOLUCAO IN ('TSI5', 'TSI6', 'TSI7') >) AS C; ### SG1PM - Mensal $$ \frac{SolicitaçõesTSSx – SolicitaçõesTSSxEncerradosAtraso}{SolicitaçõesTSSx} $$ - Tipo = Solicitação - Status = Fechada - Grupo Solucionador = PRODUÇÃO e NOC - Grupo de prioridades = TSS1, TSS2, TSS3, TSS4 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` - `DATA_ABERTURA` - `SLA_ATENDIDO` > sql >``` *sql > SELECT > COUNT(CASE WHEN SLA_VIOLADO = 0 THEN 1 END) AS ATENDIDOS, > COUNT(*) AS TOTAL, > AVG(CASE WHEN SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END) AS SG1PM >FROM ( > SELECT DISTINCT > C.CHAMADO, > C.SLA_VIOLADO, > C.SLA_ATENDIDO, > C.DATA_ABERTURA, > C.DATA_SOLUCAO, > C.COD_SOLUCAO > FROM dbo.CHAMADOS AS C > WHERE C.TIPO_CHAMADO = 'Solicitação' > AND C.STATUS = 'Fechada' > AND C.GRUPO_SOLUCIONADOR IN ('PRODUÇÃO', 'NOC') > AND DATEADD(ss, C.DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-11-01 00:00:00' AND '2023-11-30 23:59:59' > AND C.COD_SOLUCAO IN ('TSS1', 'TSS2', 'TSS3', 'TSS4') >) AS C; ### SG2PM - Mensal $$ \frac{SolicitaçõesTSSx – SolicitaçõesTSSxEncerradosAtraso}{SolicitaçõesTSSx} $$ - Tipo = Solicitação - Status = Fechada - Grupo Solucionador = PRODUÇÃO e NOC - Grupo de prioridades = TSS5, TSS6, TSS7, TSS8, TSS9, TSS10 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` - `DATA_ABERTURA` - `SLA_ATENDIDO` > sql >``` *sql > SELECT > COUNT(CASE WHEN SLA_VIOLADO = 0 THEN 1 END) AS ATENDIDOS, > COUNT(*) AS TOTAL, > AVG(CASE WHEN SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END) AS SG2PM > FROM ( > SELECT DISTINCT > C.CHAMADO, > C.SLA_VIOLADO, > C.SLA_ATENDIDO, > C.DATA_ABERTURA, > C.DATA_SOLUCAO, > C.COD_SOLUCAO > FROM dbo.CHAMADOS AS C > WHERE C.TIPO_CHAMADO = 'Solicitação' > AND C.STATUS = 'Fechada' > AND C.GRUPO_SOLUCIONADOR IN ('PRODUÇÃO', 'NOC') > AND DATEADD(ss, C.DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-11-01 00:00:00' AND '2023-11-30 23:59:59' > AND C.COD_SOLUCAO IN ('TSS5', 'TSS6', 'TSS7', 'TSS8', 'TSS9', 'TSS10') >) AS C; ### RG1PM - Mensal $$ \frac{RotinasTSRx – RotinasTSRxEncerradosAtraso}{RotinasTSRx} $$ - Tipo = Rotina - Status = Fechada - Grupo Solucionador = PRODUÇÃO e NOC - Grupo de prioridades = TSR1, TSR2, TSR3 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Bases usadas: CHAMADOS, TAREFASCHAMADOS - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` - Campos utilizados dentro da base `dbo.TAREFASCHAMADOS`: - `ID` - `SLA_VIOLADO` - `COD_SOLUCAO_TAREFA` - `DATA_FINAL_TAREFA` - `GRUPO_TAREFA` > sql >``` *sql > WITH CTE_Chamados AS ( > SELECT DISTINCT > c.CHAMADO, > NULL AS TASK, > c.SLA_VIOLADO, > c.COD_SOLUCAO > FROM dbo.CHAMADOS c > WHERE > c.TIPO_CHAMADO = 'Rotina' > AND c.STATUS = 'Fechada' > AND c.GRUPO_SOLUCIONADOR IN ('PRODUÇÃO', 'NOC') > AND DATEADD(ss, c.DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND c.COD_SOLUCAO IN ('TSR1','TSR2','TSR3') > > UNION ALL > > SELECT DISTINCT > NULL AS CHAMADO, > tc.ID AS TASK, > tc.SLA_VIOLADO, > tc.COD_SOLUCAO_TAREFA AS COD_SOLUCAO > FROM dbo.TAREFASCHAMADOS tc > WHERE tc.GRUPO_TAREFA IN ('PRODUÇÃO', 'NOC') > AND DATEADD(ss, tc.DATA_FINAL_TAREFA - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND tc.COD_SOLUCAO_TAREFA IN ('TSR1','TSR2','TSR3') > ), > All_Solutions AS ( > SELECT COD_SOLUCAO > FROM (VALUES ('TSR1'), ('TSR2'), ('TSR3')) AS T(COD_SOLUCAO) > ) > SELECT > A.COD_SOLUCAO AS priority, > COUNT(CASE WHEN C.SLA_VIOLADO = 0 THEN 1 END) AS fulfilled, > COUNT(C.COD_SOLUCAO) AS total, > ISNULL(AVG(CASE WHEN C.SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END), 0) AS result > FROM All_Solutions AS A > LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO > GROUP BY A.COD_SOLUCAO > ORDER BY A.COD_SOLUCAO; ### RG2PM - Mensal $$ \frac{RotinasTSRx – RotinasTSRxEncerradosAtraso}{RotinasTSRx} $$ - Tipo = Rotina - Status = Fechada - Grupo Solucionador = PRODUÇÃO e NOC - Grupo de prioridades = TSR4, TSR5 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Bases usadas: CHAMADOS, TAREFASCHAMADOS - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` - Campos utilizados dentro da base `dbo.TAREFASCHAMADOS`: - `ID` - `SLA_VIOLADO` - `COD_SOLUCAO_TAREFA` - `DATA_FINAL_TAREFA` - `GRUPO_TAREFA` > sql >``` *sql > WITH CTE_Chamados AS ( > SELECT DISTINCT > c.CHAMADO, > NULL AS TASK, > c.SLA_VIOLADO, > c.COD_SOLUCAO > FROM dbo.CHAMADOS c > WHERE > c.TIPO_CHAMADO = 'Rotina' > AND c.STATUS = 'Fechada' > AND c.GRUPO_SOLUCIONADOR IN ('PRODUÇÃO', 'NOC') > AND DATEADD(ss, c.DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND c.COD_SOLUCAO IN ('TSR4', 'TSR5') > UNION ALL > > SELECT DISTINCT > NULL AS CHAMADO, > tc.ID AS TASK, > tc.SLA_VIOLADO, > tc.COD_SOLUCAO_TAREFA AS COD_SOLUCAO > FROM dbo.TAREFASCHAMADOS tc > WHERE tc.GRUPO_TAREFA IN ('PRODUÇÃO', 'NOC') > AND DATEADD(ss, tc.DATA_FINAL_TAREFA - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND tc.COD_SOLUCAO_TAREFA IN ('TSR4', 'TSR5') > ), > All_Solutions AS ( > SELECT COD_SOLUCAO > FROM (VALUES ('TSR4'), ('TSR5')) AS T(COD_SOLUCAO) > ) > SELECT > A.COD_SOLUCAO AS priority, > COUNT(CASE WHEN C.SLA_VIOLADO = 0 THEN 1 END) AS fulfilled, > COUNT(C.COD_SOLUCAO) AS total, > ISNULL(AVG(CASE WHEN C.SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END), 0) AS result > FROM All_Solutions AS A > LEFT JOIN CTE_Chamados AS C ON A.COD_SOLUCAO = C.COD_SOLUCAO > GROUP BY A.COD_SOLUCAO > ORDER BY A.COD_SOLUCAO; ## XGnDS ### IG1DS - Mensal $$ \frac{IncidentesTSIx – IncidentesTSIxEncerradosAtraso}{IncidentesTSIx} $$ - Tipo = Incidente - Status = Fechada - Grupo Solucionador = 'GEPIN AS Atendimento' - Grupo de prioridades = TSI1, TSI2, TSI3, TSI4 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` - `DATA_ABERTURA` - `SLA_ATENDIDO` > sql >``` *sql > SELECT > COUNT(CASE WHEN SLA_VIOLADO = 0 THEN 1 END) AS ATENDIDOS, > COUNT(*) AS TOTAL, > AVG(CASE WHEN SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END) AS IG1DS >FROM ( > SELECT DISTINCT > C.CHAMADO, > C.SLA_VIOLADO, > C.SLA_ATENDIDO, > C.DATA_ABERTURA, > C.DATA_SOLUCAO, > C.COD_SOLUCAO > FROM dbo.CHAMADOS AS C > WHERE C.TIPO_CHAMADO = 'Incidente' > AND C.STATUS = 'Fechada' > AND C.GRUPO_SOLUCIONADOR = 'GEPIN AS Atendimento' > AND DATEADD(ss, C.DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND C.COD_SOLUCAO IN ('TSI1', 'TSI2', 'TSI3', 'TSI4') >) AS C; ### IG2DS - Mensal $$ \frac{IncidentesTSIx – IncidentesTSIxEncerradosAtraso}{IncidentesTSIx} $$ - Tipo = Incidente - Status = Fechada - Grupo Solucionador = 'GEPIN AS Atendimento' - Grupo de prioridades = TSI5, TSI6, TSI7 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` - `DATA_ABERTURA` - `SLA_ATENDIDO` > sql >``` *sql > SELECT > COUNT(CASE WHEN SLA_VIOLADO = 0 THEN 1 END) AS ATENDIDOS, > COUNT(*) AS TOTAL, > AVG(CASE WHEN SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END) AS IG2DS >FROM ( > SELECT DISTINCT > C.CHAMADO, > C.SLA_VIOLADO, > C.SLA_ATENDIDO, > C.DATA_ABERTURA, > C.DATA_SOLUCAO, > C.COD_SOLUCAO > FROM dbo.CHAMADOS AS C > WHERE C.TIPO_CHAMADO = 'Incidente' > AND C.STATUS = 'Fechada' > AND C.GRUPO_SOLUCIONADOR = 'GEPIN AS Atendimento' > AND DATEADD(ss, C.DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND C.COD_SOLUCAO IN ('TSI5', 'TSI6', 'TSI7') >) AS C; ### SG1DS - Mensal $$ \frac{SolicitaçõesTSSx – SolicitaçõesTSSxEncerradosAtraso}{SolicitaçõesTSSx} $$ - Tipo = Solicitação - Status = Fechada - Grupo Solucionador = 'GEPIN AS Atendimento' - Grupo de prioridades = TSS1, TSS2, TSS3, TSS4 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` - `DATA_ABERTURA` - `SLA_ATENDIDO` > sql >``` *sql > SELECT > COUNT(CASE WHEN SLA_VIOLADO = 0 THEN 1 END) AS ATENDIDOS, > COUNT(*) AS TOTAL, > AVG(CASE WHEN SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END) AS SG1DS >FROM ( > SELECT DISTINCT > C.CHAMADO, > C.SLA_VIOLADO, > C.SLA_ATENDIDO, > C.DATA_ABERTURA, > C.DATA_SOLUCAO, > C.COD_SOLUCAO > FROM dbo.CHAMADOS AS C > WHERE C.TIPO_CHAMADO = 'Solicitação' > AND C.STATUS = 'Fechada' > AND C.GRUPO_SOLUCIONADOR = 'GEPIN AS Atendimento' > AND DATEADD(ss, C.DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND C.COD_SOLUCAO IN ('TSS1', 'TSS2', 'TSS3', 'TSS4') >) AS C; ### SG2DS - Mensal $$ \frac{SolicitaçõesTSSx – SolicitaçõesTSSxEncerradosAtraso}{SolicitaçõesTSSx} $$ - Tipo = Solicitação - Status = Fechada - Grupo Solucionador = 'GEPIN AS Atendimento' - Grupo de prioridades = TSS5, TSS6, TSS7, TSS8, TSS9, TSS10 - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `SLA_VIOLADO` - `COD_SOLUCAO` - `STATUS` - `GRUPO_SOLUCIONADOR` - `TIPO_CHAMADO` - `DATA_SOLUCAO` - `DATA_ABERTURA` - `SLA_ATENDIDO` > sql >``` *sql > SELECT > COUNT(CASE WHEN SLA_VIOLADO = 0 THEN 1 END) AS ATENDIDOS, > COUNT(*) AS TOTAL, > AVG(CASE WHEN SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END) AS SG2DS >FROM ( > SELECT DISTINCT > C.CHAMADO, > C.SLA_VIOLADO, > C.SLA_ATENDIDO, > C.DATA_ABERTURA, > C.DATA_SOLUCAO, > C.COD_SOLUCAO > FROM dbo.CHAMADOS AS C > WHERE C.TIPO_CHAMADO = 'Solicitação' > AND C.STATUS = 'Fechada' > AND C.GRUPO_SOLUCIONADOR = 'GEPIN AS Atendimento' > AND DATEADD(ss, C.DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND C.COD_SOLUCAO IN ('TSS5', 'TSS6', 'TSS7', 'TSS8', 'TSS9', 'TSS10') >) AS C; ## IRE - Mensal $$ \frac{Eventos – EventosTratadosAtrasoErro}{Eventos} $$ - Tipo = Incidente - Status = Fechada - Grupo Solucionador = NOC - Categoria = Qualquer uma que contenha a palavra "Monitoramento" - Encerrados com atraso = tempo até o atendimento maior que 20 minutos - Bases utilizadas = `dbo.ZCVCR`, `dbo.CHAMADOS` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `ID_CICLO` - `DATA_SOLUCAO` - `STATUS` - `CATEGORIA` - `TIPO_CHAMADO` - `GRUPO_SOLUCIONADOR` - Campos utilizados dentro da base `dbo.ZCVCR`: - `CHAMADO_CICLO` - `ID_CICLO` - `ULT_MOD_CICLO` - `ATIVIDADE_CICLO` - `GRUPO_CICLO` - `STATUS_ANTERIOR_CICLO` - `STATUS_ATUAL_CICLO` > sql >``` *sql > WITH CTE AS ( > SELECT > CHAMADO_CICLO, > MIN(ULT_MOD_CICLO) AS MIN_ULT_MOD_CICLO > FROM dbo.ZCVCR > WHERE 1=1 > AND GRUPO_CICLO = 'NOC' > AND ATIVIDADE_CICLO = 'Atualizar status' > AND STATUS_ANTERIOR_CICLO = 'Aberta' > AND STATUS_ATUAL_CICLO = 'Em atendimento' > GROUP BY CHAMADO_CICLO >), >CTE2 AS ( > SELECT > C.CHAMADO, > MIN(CTE.MIN_ULT_MOD_CICLO) - MIN(C.DATA_ABERTURA) AS TEMPO_ATE_ATENDIMENTO > FROM dbo.CHAMADOS C > INNER JOIN dbo.ZCVCR Z ON C.ID_CICLO = Z.ID_CICLO > INNER JOIN CTE ON C.CHAMADO = CTE.CHAMADO_CICLO > WHERE DATEADD(ss, C.DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND C.STATUS = 'Fechada' > AND C.CATEGORIA LIKE '%Monitoramento%' > AND C.TIPO_CHAMADO = 'Incidente' > AND C.GRUPO_SOLUCIONADOR = 'NOC' > GROUP BY C.CHAMADO >) >SELECT > COUNT(CASE WHEN C.TEMPO_ATE_ATENDIMENTO <= 1200 THEN 1 END) AS ATENDIDOS, > COUNT(*) AS TOTAL, > AVG(CASE WHEN C.TEMPO_ATE_ATENDIMENTO <= 1200 THEN 1.0 ELSE 0 END) AS IRE >FROM CTE2 AS C; ## CSE - Mensal $$ \frac{ChamadosExecutadosSemErro}{ChamadosExecutados} $$ - Tipo = Rotina, Solicitação, Incidente - Status = Fechada - Grupo Solucionador = NOC - Encerrados com atraso = campo `SLA_VIOLADO = 1` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `SLA_VIOLADO` - `CHAMADO` - `DATA_SOLUCAO` - `GRUPO_SOLUCIONADOR` - `STATUS` - `TIPO_CHAMADO` > sql >``` *sql > SELECT > COUNT(CASE WHEN SLA_VIOLADO = 0 THEN 1 END) AS ATENDIDOS, > COUNT(*) AS TOTAL, > AVG(CASE WHEN SLA_VIOLADO = 0 THEN 1.0 ELSE 0 END) AS CSE >FROM ( > SELECT DISTINCT > CHAMADO, > SLA_VIOLADO > FROM dbo.CHAMADOS > WHERE DATEADD(ss, DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND STATUS = 'Fechada' > AND GRUPO_SOLUCIONADOR = 'NOC' > AND TIPO_CHAMADO IN ('Rotina','Solicitação', 'Incidente') >) AS C; ## IGNC - Mensal - SQL ANTIGO $$ \frac{ChamadosResolvidos - ChamadosResolvidosEncAtraso}{ChamadosResolvidos} $$ - Tipo = Rotina, Solicitação, Incidente - Status = Fechada - Grupo Solucionador = N1_SERVICEDESK e todos do N2, exceto N2_CABEAMENTO - Encerrados com atraso = Soma do campo `TEMPO_SOLUCAO` com resultado superior a 5 horas - Campos utilizados dentro da base `dbo.CHAMADOS`: - `SLA_VIOLADO` - `CHAMADO` - `DATA_SOLUCAO` - `GRUPO_SOLUCIONADOR` - `STATUS` - `TIPO_CHAMADO` - `TEMPO_SOLUCAO` > sql >``` *sql > WITH TOTAL_SOLUTION_TIME AS ( > SELECT > CHAMADO, > SUM(CAST(TEMPO_SOLUCAO AS INT)) AS TOTAL_SOLUTION_TIME > FROM > dbo.CHAMADOS > WHERE > TIPO_CHAMADO IN ('Incidente', 'Solicitação', 'Rotina') > AND STATUS = 'Fechada' > AND ( > GRUPO_SOLUCIONADOR = 'N1_SERVICEDESK' > OR (GRUPO_SOLUCIONADOR LIKE 'N2_%' AND GRUPO_SOLUCIONADOR != 'N2_CABEAMENTO') > ) > AND DATEADD(ss, DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > GROUP BY CHAMADO >), >CTE_SLA_Violado AS ( > SELECT COUNT(*) AS Count_SLA_Violado > FROM TOTAL_SOLUTION_TIME AS T > WHERE T.TOTAL_SOLUTION_TIME > 5 * 60 * 60 >), >CTE_Total AS ( > SELECT COUNT(*) AS Count_Total > FROM TOTAL_SOLUTION_TIME >) > >SELECT > CTE_Total.Count_Total - CTE_SLA_Violado.Count_SLA_Violado AS ATENDIDOS, > CTE_Total.Count_Total AS TOTAL, > (CTE_Total.Count_Total - CTE_SLA_Violado.Count_SLA_Violado) * 1.0 / NULLIF(CTE_Total.Count_Total, 0) AS IGNC >FROM CTE_SLA_Violado, CTE_Total; ## IGNC - Mensal - SQL NOVO ``` *sql -- #IGNC - INCIDENTES,SOLICITACOES E ROTINAS WITH TOTAL_SOLUTION_TIME_CR AS ( SELECT cr.ref_num as [CHAMADO], SUM(zciclo.z_dur_Time_spent_group) as [TOTAL_SOLUTION_TIME] FROM call_req cr JOIN z_ciclo_de_vida_cr zciclo ON cr.persid = zciclo.z_srl_Persistent_id LEFT JOIN ca_contact cnt ON cr.group_id = cnt.contact_uuid WHERE (cr.type IN ('I', 'R')) -- incidente, solicitação, rotina AND (cr.status = 'CL') AND (cnt.contact_type = 2308 AND (cnt.last_name IN ('N1_SERVICEDESK') OR (cnt.last_name LIKE 'N2_%' AND cnt.last_name != 'N2_CABEAMENTO'))) AND DATEADD(ss, cr.resolve_date - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' GROUP BY cr.ref_num ), TOTAL_SOLUTION_TIME_WF_CR AS ( SELECT crwf.id as [TAREFA_ID], SUM(z_ciclo_task.tempo_sla) as [TAREFA_TEMPO_UTIL] FROM crwf JOIN z_ciclo_task ON z_ciclo_task.crwf_id = crwf.id JOIN ca_contact cnt ON crwf.group_id = cnt.contact_uuid WHERE (crwf.status = 'COMP') AND (cnt.contact_type = 2308 AND (cnt.last_name IN ('N1_SERVICEDESK') OR (cnt.last_name LIKE 'N2_%' AND cnt.last_name != 'N2_CABEAMENTO'))) AND DATEADD(ss, crwf.completion_date - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' GROUP BY crwf.id ), TOTAL_SOLUTION_TIME_WF_CHG AS ( SELECT wf.id as [TAREFA_ID], SUM(z_ciclo_task.tempo_sla) as [TAREFA_TEMPO_UTIL] FROM wf JOIN z_ciclo_task ON z_ciclo_task.crwf_id = wf.id JOIN ca_contact cnt ON wf.group_id = cnt.contact_uuid WHERE (wf.status = 'COMP') AND (cnt.contact_type = 2308 AND (cnt.last_name IN ('N1_SERVICEDESK') OR (cnt.last_name LIKE 'N2_%' AND cnt.last_name != 'N2_CABEAMENTO'))) AND DATEADD(ss, wf.completion_date - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' GROUP BY wf.id ), CTE_SLA_Violado AS ( SELECT COUNT(*) AS Count_SLA_Violado FROM ( -- Somando os tempos de todas as CTEs SELECT [TOTAL_SOLUTION_TIME] FROM TOTAL_SOLUTION_TIME_CR UNION ALL SELECT [TAREFA_TEMPO_UTIL] AS [TOTAL_SOLUTION_TIME] FROM TOTAL_SOLUTION_TIME_WF_CR UNION ALL SELECT [TAREFA_TEMPO_UTIL] AS [TOTAL_SOLUTION_TIME] FROM TOTAL_SOLUTION_TIME_WF_CHG ) AS TotalSolutionTimes WHERE TotalSolutionTimes.TOTAL_SOLUTION_TIME > 5 * 60 * 60 -- SLA violado ), CTE_TOTAL AS ( SELECT COUNT(*) AS COUNT_TOTAL FROM ( -- Contabilizando todos os tempos de solução SELECT [TOTAL_SOLUTION_TIME] FROM TOTAL_SOLUTION_TIME_CR UNION ALL SELECT [TAREFA_TEMPO_UTIL] AS [TOTAL_SOLUTION_TIME] FROM TOTAL_SOLUTION_TIME_WF_CR UNION ALL SELECT [TAREFA_TEMPO_UTIL] AS [TOTAL_SOLUTION_TIME] FROM TOTAL_SOLUTION_TIME_WF_CHG ) AS TotalSolutionTimes ) SELECT CTE_TOTAL.COUNT_TOTAL - CTE_SLA_Violado.Count_SLA_Violado AS ATENDIDOS, CTE_TOTAL.COUNT_TOTAL AS TOTAL, (CTE_TOTAL.COUNT_TOTAL - CTE_SLA_Violado.Count_SLA_Violado) * 1.0 / NULLIF(CTE_TOTAL.COUNT_TOTAL, 0) as IGNC FROM CTE_SLA_Violado, CTE_TOTAL; GO ``` ## PDTC - Mensal $$ \frac{ChamadasDesistencia}{ChamadasTelefoneChat} $$ - Bases utilizadas = `qstats_mutano.queue_stats`, `qstats_mutano.qevent`, `qstats_mutano.qname`, `qstats_mutano.qagent` - Campos utilizados dentro da base `qstats_mutano.queue_stats`: - `qevent` - `qagent` - `qname` - `EVENT` - `uniqueid` - `momento_finalizada_abandonada` - `info3` - Campos utilizados dentro da base `qstats_mutano.qevent`: - `event_id` - Campos utilizados dentro da base `qstats_mutano.qname`: - `queue_id` - Campos utilizados dentro da base `qstats_mutano.qagent`: - `agent_id` > sql >``` *sql > SELECT > COUNT(CASE WHEN completadas_abandonadas.uniqueid IS NULL THEN 1 END) AS ATENDIDOS, > COUNT(ingressadas.uniqueid) AS TOTAL, > AVG(CASE WHEN completadas_abandonadas.uniqueid IS NOT NULL THEN 1.0 ELSE 0 END) AS PDTC >FROM ( > SELECT uniqueid, EVENT, info2 AS origem, DATETIME AS momento_entrada, qn.queue AS fila > FROM qstats_mutano.queue_stats qs > LEFT JOIN qstats_mutano.qevent qe ON (qs.qevent = qe.event_id) > LEFT JOIN qstats_mutano.qagent qa ON (qs.qagent = qa.agent_id) > LEFT JOIN qstats_mutano.qname qn ON (qs.qname = qn.queue_id) > WHERE CAST(qs.DATETIME AS DATE) BETWEEN CAST('2023-09-01 00:00:00' AS DATE) AND CAST('2023-12-31 23:59:59' AS DATE) > AND qs.qevent = 15 > AND qn.queue IN ('0131', '0132') >) ingressadas > >LEFT JOIN ( > SELECT uniqueid, EVENT, DATETIME AS momento_finalizada_abandonada, info3 AS tempo_espera_abandono > FROM qstats_mutano.queue_stats qs > LEFT JOIN qstats_mutano.qevent qe ON (qs.qevent = qe.event_id) > LEFT JOIN qstats_mutano.qagent qa ON (qs.qagent = qa.agent_id) > LEFT JOIN qstats_mutano.qname qn ON (qs.qname = qn.queue_id) > WHERE qs.qevent IN (1) > AND qn.queue IN ('0131', '0132') > AND qs.info3 > 15 >) completadas_abandonadas ON (ingressadas.uniqueid = completadas_abandonadas.uniqueid); ## TETC - Mensal $$ \frac{AtendimentosTelefoneChat – AtendimentosTempoEsperaExcedido}{AtendimentosTelefoneChat} $$ - Bases utilizadas = `qstats_mutano.queue_stats`, `qstats_mutano.qevent`, `qstats_mutano.qname`, `qstats_mutano.qagent` - Campos utilizados dentro da base `qstats_mutano.queue_stats`: - `qevent` - `qagent` - `qname` - `EVENT` - `uniqueid` - `momento_finalizada_abandonada` - `info3` - Campos utilizados dentro da base `qstats_mutano.qevent`: - `event_id` - Campos utilizados dentro da base `qstats_mutano.qname`: - `queue_id` - Campos utilizados dentro da base `qstats_mutano.qagent`: - `agent_id` > sql >``` *sql > SELECT > COUNT(CASE WHEN atendidas.tempo_espera_atendimento <= 60 THEN 1 END) AS ATENDIDOS, > COUNT(ingressadas.uniqueid) AS TOTAL, > AVG(CASE WHEN atendidas.tempo_espera_atendimento <= 60 THEN 1.0 ELSE 0 END) AS TETC >FROM ( > SELECT uniqueid, EVENT, info2 AS origem, DATETIME AS momento_entrada, qn.queue AS fila > FROM qstats_mutano.queue_stats qs > LEFT JOIN qstats_mutano.qevent qe ON (qs.qevent = qe.event_id) > LEFT JOIN qstats_mutano.qagent qa ON (qs.qagent = qa.agent_id) > LEFT JOIN qstats_mutano.qname qn ON (qs.qname = qn.queue_id) > WHERE CAST(qs.DATETIME AS DATE) BETWEEN CAST('2023-11-01 00:00:00' AS DATE) AND CAST('2023-11-30 23:59:59' AS DATE) > AND qs.qevent = 15 > AND qn.queue IN ('0131', '0132') >) ingressadas > >LEFT JOIN ( > SELECT uniqueid, EVENT, DATETIME AS momento_atendimento, qa.agent AS atendente, info1 AS >tempo_espera_atendimento > FROM qstats_mutano.queue_stats qs > LEFT JOIN qstats_mutano.qevent qe ON (qs.qevent = qe.event_id) > LEFT JOIN qstats_mutano.qagent qa ON (qs.qagent = qa.agent_id) > LEFT JOIN qstats_mutano.qname qn ON (qs.qname = qn.queue_id) > WHERE qs.qevent = 12 > AND qn.queue IN ('0131', '0132') >) atendidas ON (ingressadas.uniqueid = atendidas.uniqueid) > >LEFT JOIN ( > SELECT uniqueid, EVENT, DATETIME AS momento_finalizada_abandonada, info3 AS tempo_espera_abandono > FROM qstats_mutano.queue_stats qs > LEFT JOIN qstats_mutano.qevent qe ON (qs.qevent = qe.event_id) > LEFT JOIN qstats_mutano.qagent qa ON (qs.qagent = qa.agent_id) > LEFT JOIN qstats_mutano.qname qn ON (qs.qname = qn.queue_id) > WHERE qs.qevent IN (1) > AND qn.queue IN ('0131', '0132') > AND qs.info3 > 15 >) completadas_abandonadas ON (ingressadas.uniqueid = completadas_abandonadas.uniqueid) >WHERE completadas_abandonadas.uniqueid IS NOT NULL OR atendidas.uniqueid IS NOT NULL; ## TMN1 - Mensal $$ \frac{AtendimentosN1 – AtendimentosN1AcimaTempo}{AtendimentosN1} $$ - Bases utilizadas = `qstats_mutano.queue_stats`, `qstats_mutano.qevent`, `qstats_mutano.qname`, `qstats_mutano.qagent` - Campos utilizados dentro da base `qstats_mutano.queue_stats`: - `qevent` - `qagent` - `qname` - `EVENT` - `uniqueid` - `momento_finalizada_abandonada` - `info3` - Campos utilizados dentro da base `qstats_mutano.qevent`: - `event_id` - Campos utilizados dentro da base `qstats_mutano.qname`: - `queue_id` - Campos utilizados dentro da base `qstats_mutano.qagent`: - `agent_id` > sql >``` *sql > SELECT > COUNT(CASE WHEN completadas_atendidas.tempo_atendimento <= 1800 THEN 1 END) AS ATENDIDOS, > COUNT(atendidas.uniqueid) AS TOTAL, > COUNT(CASE WHEN completadas_atendidas.tempo_atendimento <= 1800 THEN 1 END) * 1.0 / >COUNT(atendidas.uniqueid) AS TMN1 >FROM ( > SELECT uniqueid, EVENT, info2 AS origem, DATETIME AS momento_entrada, qn.queue AS fila > FROM qstats_mutano.queue_stats qs > LEFT JOIN qstats_mutano.qevent qe ON (qs.qevent = qe.event_id) > LEFT JOIN qstats_mutano.qagent qa ON (qs.qagent = qa.agent_id) > LEFT JOIN qstats_mutano.qname qn ON (qs.qname = qn.queue_id) > WHERE CAST(qs.DATETIME AS DATE) BETWEEN CAST('2023-11-01 00:00:00' AS DATE) AND CAST('2023-11-30 23:59:59' AS DATE) > AND qs.qevent = 15 > AND qn.queue IN ('0131', '0132') >) ingressadas > >LEFT JOIN ( > SELECT uniqueid, EVENT, DATETIME AS momento_atendimento, qa.agent AS atendente, info1 AS tempo_espera_atendimento > FROM qstats_mutano.queue_stats qs > LEFT JOIN qstats_mutano.qevent qe ON (qs.qevent = qe.event_id) > LEFT JOIN qstats_mutano.qagent qa ON (qs.qagent = qa.agent_id) > LEFT JOIN qstats_mutano.qname qn ON (qs.qname = qn.queue_id) > WHERE qs.qevent = 12 > AND qn.queue IN ('0131', '0132') >) atendidas ON (ingressadas.uniqueid = atendidas.uniqueid) > >LEFT JOIN ( > SELECT uniqueid, EVENT, DATETIME AS momento_finalizada_atendida, info2 AS tempo_atendimento > FROM qstats_mutano.queue_stats qs > LEFT JOIN qstats_mutano.qevent qe ON (qs.qevent = qe.event_id) > LEFT JOIN qstats_mutano.qagent qa ON (qs.qagent = qa.agent_id) > LEFT JOIN qstats_mutano.qname qn ON (qs.qname = qn.queue_id) > WHERE qs.qevent IN (9, 10) > AND qn.queue IN ('0131', '0132') >) completadas_atendidas ON (ingressadas.uniqueid = completadas_atendidas.uniqueid); ## TAN1 - Mensal - SQL ANTIGO $$ \frac{ChamadosFechadosTransitadosN1 - ChamadosAtendidosAtraso}{ChamadosFechadosTransitadosN1} $$ - Tipo = Solicitação, Incidente - Status = Fechada - Grupo Atendimento = N1_SERVICEDESK - Atendidos com atraso = Mais de 30 minutos para o antendimento - Bases utilizadas = `dbo.ZCVCR`, `dbo.CHAMADOS` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `ID_CICLO` - `DATA_SOLUCAO` - `STATUS` - `CATEGORIA` - `TIPO_CHAMADO` - `GRUPO_ATENDIMENTO` - `VIP` - Campos utilizados dentro da base `dbo.ZCVCR`: - `CHAMADO_CICLO` - `ID_CICLO` - `ULT_MOD_CICLO` - `ATIVIDADE_CICLO` - `GRUPO_CICLO` - `STATUS_ANTERIOR_CICLO` - `STATUS_ATUAL_CICLO` > sql >``` *sql > WITH CTE AS ( > SELECT > CHAMADO_CICLO, > MIN(ULT_MOD_CICLO) AS MIN_ULT_MOD_CICLO > FROM dbo.ZCVCR > WHERE GRUPO_CICLO = 'N1_SERVICEDESK' > AND ATIVIDADE_CICLO = 'Atualizar status' > AND STATUS_ANTERIOR_CICLO = 'Aberta' > AND STATUS_ATUAL_CICLO = 'Em atendimento' > GROUP BY CHAMADO_CICLO >), >CTE2 AS ( > SELECT > C.CHAMADO, > SUM(Z.TEMPO_CICLO) AS TOTAL_TEMPO_CICLO, > MAX(C.VIP) AS VIP > FROM dbo.CHAMADOS C > INNER JOIN dbo.ZCVCR Z ON C.ID_CICLO = Z.ID_CICLO > LEFT JOIN CTE ON C.CHAMADO = CTE.CHAMADO_CICLO > WHERE DATEADD(ss, C.DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND C.STATUS = 'Fechada' > AND C.TIPO_CHAMADO IN ('Incidente', 'Solicitação') > AND C.GRUPO_ATENDIMENTO = 'N1_SERVICEDESK' > AND Z.ULT_MOD_CICLO <= CTE.MIN_ULT_MOD_CICLO > GROUP BY C.CHAMADO >) >SELECT > COUNT(CASE WHEN C.VIP = 0 AND C.TOTAL_TEMPO_CICLO <= 1800 THEN 1 > WHEN C.VIP = 1 AND C.TOTAL_TEMPO_CICLO <= 1200 THEN 1 END) AS ATENDIDOS, > COUNT(*) AS TOTAL, > AVG(CASE WHEN C.VIP = 0 AND C.TOTAL_TEMPO_CICLO <= 1800 THEN 1.0 > WHEN C.VIP = 1 AND C.TOTAL_TEMPO_CICLO <= 1200 THEN 1.0 ELSE 0 END) AS TAN1 >FROM CTE2 AS C; ## TAN1 - Mensal - SQL NOVO ``` *sql -- TAN1 WITH CTE AS ( SELECT cr.ref_num AS [CHAMADO_CICLO], MIN(zciclo_cr.last_mod_dt) as [MIN_ULT_MOD_CICLO] FROM call_req cr JOIN z_ciclo_de_vida_cr zciclo_cr ON cr.persid = zciclo_cr.z_srl_Persistent_id JOIN ca_contact grp ON zciclo_cr.z_srl_Group = grp.contact_uuid WHERE (cr.status = 'CL' AND cr.status != 'CNCL') AND grp.last_name = 'N1_SERVICEDESK' -- passou N1 AND zciclo_cr.z_srl_Activity = 'ST' -- Atualizar Status AND (zciclo_cr.z_srl_OldStatus = 'OP' AND zciclo_cr.z_srl_Status = 'WIP') -- Aberto -> Atendimento AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' GROUP BY cr.ref_num, zciclo_cr.last_mod_dt ), CTE_VIP AS( SELECT cnt.contact_uuid as [USER_UUID], cnt.last_name as [NOME], cnt.userid as [USER_ID], CASE WHEN (hdn.sym IS NOT NULL) THEN 1 ELSE 0 END as [VIP] FROM ca_contact cnt LEFT JOIN usp_contact_handling cnth ON cnth.contact = cnt.contact_uuid LEFT JOIN usp_special_handling hdn ON hdn.id = cnth.special_handling WHERE hdn.sym IS NOT NULL AND cnt.inactive=0 ), CTE2 AS ( SELECT C.ref_num as [CHAMADO], SUM(Z.z_dur_Time_spent_group) AS [TOTAL_TEMPO_CICLO] ,CASE WHEN (CTE_VIP.USER_ID IS NOT NULL) THEN 1 ELSE 0 END as [VIP] FROM call_req C JOIN z_ciclo_de_vida_cr Z ON C.persid = Z.z_srl_Persistent_id JOIN ca_contact grp ON Z.z_srl_Group = grp.contact_uuid JOIN CTE ON C.ref_num = CTE.CHAMADO_CICLO LEFT JOIN CTE_VIP ON C.requested_by = CTE_VIP.USER_UUID WHERE DATEADD(ss, C.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' AND C.STATUS = 'CL' AND C.type IN ('I', 'R') AND grp.last_name = 'N1_SERVICEDESK' -- passou N1 GROUP BY C.ref_num ,CTE_VIP.USER_ID ) SELECT COUNT(CASE WHEN C.VIP = 0 AND C.TOTAL_TEMPO_CICLO <= 1800 THEN 1 WHEN C.VIP = 1 AND C.TOTAL_TEMPO_CICLO <= 1200 THEN 1 END) AS ATENDIDOS, COUNT(*) AS TOTAL, AVG(CASE WHEN C.VIP = 0 AND C.TOTAL_TEMPO_CICLO <= 1800 THEN 1.0 WHEN C.VIP = 1 AND C.TOTAL_TEMPO_CICLO <= 1200 THEN 1.0 ELSE 0 END) AS TAN1 FROM CTE2 AS C; ``` ## SCN1 - Mensal - SQL ANTIGO $$ \frac{ChamadosSolucionadosN1}{ChamadosRegistradosPassíveisN1} $$ - Tipo = Solicitação, Incidente - Status = Fechada - Grupo Atendimento = N1_SERVICEDESK - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `GRUPO_SOLUCIONADOR` - `DATA_SOLUCAO` - `STATUS` - `CATEGORIA` - `TIPO_CHAMADO` > sql >``` *sql > SELECT > COUNT(CASE WHEN GRUPO_SOLUCIONADOR = 'N1_SERVICEDESK' THEN 1 END) AS fulfilled, > COUNT(*) AS total, > AVG(CASE WHEN GRUPO_SOLUCIONADOR = 'N1_SERVICEDESK' THEN 1.0 ELSE 0 END) AS result > FROM ( > SELECT DISTINCT > CHAMADO, > GRUPO_SOLUCIONADOR > FROM dbo.CHAMADOS > WHERE DATEADD(ss, DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > AND STATUS = 'Fechada' > AND TIPO_CHAMADO IN ('Incidente', 'Solicitação') > AND CATEGORIA IN ('APLICAÇÕES E SERVIÇOS CORPORATIVOS.SISTEMAS CLIENTE-SERVIDOR.Erro.Falha Individual em Sistema VB', 'APLICAÇÕES E SERVIÇOS CORPORATIVOS.SISTEMAS WEB.Erro.Falha Individual em Sistema WEB', 'COLABORAÇÃO.OFFICE 365 (TEAMS, SHAREPOINT, E-MAIL).Erro.Erro na Autenticação Multifator do Office 365', 'COLABORAÇÃO.OFFICE 365 (TEAMS, SHAREPOINT, E-MAIL).Execução.Orientação ao usuário final', 'ESTAÇÃO DE TRABALHO.NOTEBOOK.Erro.Mau Funcionamento (Tela Azul, Lentidão, Travando, entre outros).', 'ESTAÇÃO DE TRABALHO.SISTEMA OPERACIONAL.Administração.Configuração de Sistema Operacional', 'ESTAÇÃO DE TRABALHO.SOFTWARE APLICATIVO.Erro.Mau Funcionamento do Aplicativo', 'SEGURANÇA DA INFORMAÇÃO.CERTIFICADO DIGITAL.Implementação.Instalação de E-CPF em Estação / Perfil de Usuário', 'SUPORTE AO USUÁRIO.ACOMPANHAMENTO TÉCNICO.Administração.Reserva de acompanhamento técnico em reuniões e eventos internos e externos', 'APLICAÇÕES E SERVIÇOS CORPORATIVOS.IMPRESSÃO.Implementação.Instalação / Configuração em Perfil de Usuário', 'APLICAÇÕES E SERVIÇOS CORPORATIVOS.SISTEMAS CLIENTE-SERVIDOR.Implementação.Instalação / Atualização de Sistema VB', 'ESTAÇÃO DE TRABALHO.EMPRÉSTIMO.Administração.Reserva de equipamentos para emprestimo', 'ESTAÇÃO DE TRABALHO.SOFTWARE APLICATIVO.Implementação.Instalação / Atualização / Configuração / Remoção de Aplicativo', 'SEGURANÇA DA INFORMAÇÃO.NAC (Controle de Acesso à Rede).SEGURANÇA.BLOQUEIO', 'SEGURANÇA DA INFORMAÇÃO.NAC (Controle de Acesso à Rede).SEGURANÇA.BLOQUEIO12', 'SUPORTE AO USUÁRIO.ORIENTAÇÕES GERAIS.Execução.Esclarecimentos Ao Usuário Final') > ) AS C; ## SCN1 - Mensal - SQL NOVO ``` *sql SELECT COUNT(CASE WHEN GRUPO_SOLUCIONADOR = 'N1_SERVICEDESK' THEN 1 END) AS fulfilled, COUNT(*) AS total, AVG(CASE WHEN GRUPO_SOLUCIONADOR = 'N1_SERVICEDESK' THEN 1.0 ELSE 0 END) AS result FROM ( SELECT DISTINCT cr.ref_num as [CHAMADO], grp.last_name as [GRUPO_SOLUCIONADOR] FROM call_req cr JOIN prob_ctg pcat ON pcat.persid = cr.category JOIN ca_contact grp ON cr.group_id = grp.contact_uuid WHERE DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-07-01 00:00:00' AND '2024-07-31 23:59:59' AND cr.status = 'CL' AND cr.type IN ('I', 'R') AND grp.contact_type = 2308 AND pcat.sym IN ('APLICAÇÕES E SERVIÇOS CORPORATIVOS.SISTEMAS CLIENTE-SERVIDOR.Erro.Falha Individual em Sistema VB', 'APLICAÇÕES E SERVIÇOS CORPORATIVOS.SISTEMAS WEB.Erro.Falha Individual em Sistema WEB', 'COLABORAÇÃO.OFFICE 365 (TEAMS, SHAREPOINT, E-MAIL).Erro.Erro na Autenticação Multifator do Office 365', 'COLABORAÇÃO.OFFICE 365 (TEAMS, SHAREPOINT, E-MAIL).Execução.Orientação ao usuário final', 'ESTAÇÃO DE TRABALHO.NOTEBOOK.Erro.Mau Funcionamento (Tela Azul, Lentidão, Travando, entre outros).', 'ESTAÇÃO DE TRABALHO.SISTEMA OPERACIONAL.Administração.Configuração de Sistema Operacional', 'ESTAÇÃO DE TRABALHO.SOFTWARE APLICATIVO.Erro.Mau Funcionamento do Aplicativo', 'SEGURANÇA DA INFORMAÇÃO.CERTIFICADO DIGITAL.Implementação.Instalação de E-CPF em Estação / Perfil de Usuário', 'SUPORTE AO USUÁRIO.ACOMPANHAMENTO TÉCNICO.Administração.Reserva de acompanhamento técnico em reuniões e eventos internos e externos', 'APLICAÇÕES E SERVIÇOS CORPORATIVOS.IMPRESSÃO.Implementação.Instalação / Configuração em Perfil de Usuário', 'APLICAÇÕES E SERVIÇOS CORPORATIVOS.SISTEMAS CLIENTE-SERVIDOR.Implementação.Instalação / Atualização de Sistema VB', 'ESTAÇÃO DE TRABALHO.EMPRÉSTIMO.Administração.Reserva de equipamentos para emprestimo', 'ESTAÇÃO DE TRABALHO.SOFTWARE APLICATIVO.Implementação.Instalação / Atualização / Configuração / Remoção de Aplicativo', 'SEGURANÇA DA INFORMAÇÃO.NAC (Controle de Acesso à Rede).SEGURANÇA.BLOQUEIO', 'SEGURANÇA DA INFORMAÇÃO.NAC (Controle de Acesso à Rede).SEGURANÇA.BLOQUEIO12', 'SUPORTE AO USUÁRIO.ORIENTAÇÕES GERAIS.Execução.Esclarecimentos Ao Usuário Final') ) AS C; ``` ## PSAU - Mensal - SQL NOVO $$ \frac{RespostasBomOtimo}{Respostas} $$ - Tipo = Solicitação, Incidente - Status = Fechada - Grupo Atendimento = Todos, exceto N2_CABEAMENTO - Bases utilizadas = `dbo.CHAMADOS`, `dbo.PESQUISA` - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `GRUPO_SOLUCIONADOR` - `DATA_SOLUCAO` - `STATUS` - `RESPOSTA` - `TIPO_CHAMADO` - Campos utilizados dentro da base `dbo.PESQUISA`: - `CHAMADO` ## PSAU - Mensal - SQL NOVO ```sql -- NOVO INDICADOR PSAU AJUSTADO SELECT COUNT(CASE WHEN PESQUISA.RESPOSTA IN ('Ótimo', 'Bom') THEN 1 END) AS ATENDIDOS, COUNT(*) AS TOTAL, AVG (CASE WHEN PESQUISA.RESPOSTA IN ('Ótimo', 'Bom') THEN 1.0 ELSE 0 END) AS PSAU FROM ( SELECT cr.ref_num AS [CHAMADO], CASE WHEN (cr.type = 'I') THEN 'INCIDENTE' ELSE 'SOLICITACAO/ROTINA' END AS [TIPO], cnt.last_name AS [USUARIO], grp.last_name AS [GRUPO_SOLUCIONADOR], FORMAT(dateadd(ss, cr.open_date - 10800, '1/1/1970'),'dd/MM/yyyy HH:mm:ss') AS [DATA_ABERTURA], FORMAT(dateadd(ss, svya.last_mod_dt - 10800, '1/1/1970'),'dd/MM/yyyy HH:mm:ss') AS [DATA_RESPOSTA], svy.nx_comment AS [COMENTARIO], svyq.txt AS [PERGUNTA], svya.txt AS [RESPOSTA] FROM call_req cr --JOIN PQ precisa ter respondido a pesquisa JOIN survey svy ON svy.object_id=cr.id JOIN survey_question svyq ON svy.id=svyq.owning_survey JOIN survey_answer svya ON svya.own_srvy_question=svyq.id JOIN ca_contact cnt ON svya.last_mod_by=cnt.contact_uuid JOIN ca_contact grp ON grp.contact_uuid=cr.group_id WHERE svya.selected=1 --RESPOSTA SELECIONADA AND (grp.contact_type = 2308) --UTILIZA CONTATOS DO TIPO GRUPO AND grp.last_name != 'N2_CABEAMENTO' -- RETIRA O GRUPO CABEAMENTO AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2024-01-01 00:00:00' AND '2024-07-31 23:59:59' AND cr.status = 'CL' --ORDER BY svya.last_mod_dt DESC ) AS PESQUISA ``` ## TSSS - Mensal - SQL ANTIGO $$ \frac{ChamadosSupSistemas - ChamadosSupSistemasEncAtraso }{ChamadosSupSistemas} $$ - Tipo = Solicitação, Incidente - Status = Fechada - Grupo Atendimento = N2_SISTEMAS - Campos utilizados dentro da base `dbo.CHAMADOS`: - `CHAMADO` - `GRUPO_SOLUCIONADOR` - `DATA_SOLUCAO` - `STATUS` - `TEMPO_SOLUCAO` - `TIPO_CHAMADO` > sql >``` *sql > WITH TOTAL_SOLUTION_TIME AS ( > SELECT > CHAMADO, > SUM(CAST(TEMPO_SOLUCAO AS INT)) AS TOTAL_SOLUTION_TIME > FROM > dbo.CHAMADOS > WHERE > TIPO_CHAMADO IN ('Solicitação', 'Incidente') > AND STATUS = 'Fechada' > AND GRUPO_SOLUCIONADOR = 'N2_SISTEMAS' > AND DATEADD(ss, DATA_SOLUCAO - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' > GROUP BY CHAMADO >), >CTE_SLA_Violado AS ( > SELECT COUNT(*) AS Count_SLA_Violado > FROM TOTAL_SOLUTION_TIME AS T > WHERE T.TOTAL_SOLUTION_TIME > 2 * 60 * 60 >), >CTE_Total AS ( > SELECT COUNT(*) AS Count_Total > FROM TOTAL_SOLUTION_TIME >) >SELECT > CTE_Total.Count_Total - CTE_SLA_Violado.Count_SLA_Violado AS ATENDIDOS, > CTE_Total.Count_Total AS TOTAL, > (CTE_Total.Count_Total - CTE_SLA_Violado.Count_SLA_Violado) * 1.0 / NULLIF(CTE_Total.Count_Total, 0) AS TSSS >FROM CTE_SLA_Violado, CTE_Total; ## TSSS - Mensal - SQL NOVO ``` *sql WITH TOTAL_SOLUTION_TIME AS ( SELECT cr.ref_num as [CHAMADO], SUM(CAST(zciclo_cr.z_dur_Time_spent_group AS INT)) AS TOTAL_SOLUTION_TIME FROM call_req cr JOIN ca_contact grp ON cr.group_id = grp.contact_uuid JOIN z_ciclo_de_vida_cr zciclo_cr ON cr.persid = zciclo_cr.z_srl_Persistent_id WHERE cr.type IN ('I', 'R') AND cr.status = 'CL' AND (grp.contact_type = 2308 AND grp.last_name = 'N2_SISTEMAS') AND DATEADD(ss, cr.close_date - 10800, '19700101') BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59' GROUP BY cr.ref_num ), CTE_SLA_Violado AS ( SELECT COUNT(*) AS Count_SLA_Violado FROM TOTAL_SOLUTION_TIME AS T WHERE T.TOTAL_SOLUTION_TIME > 2 * 60 * 60 ), CTE_Total AS ( SELECT COUNT(*) AS Count_Total FROM TOTAL_SOLUTION_TIME ) SELECT CTE_Total.Count_Total - CTE_SLA_Violado.Count_SLA_Violado AS ATENDIDOS, CTE_Total.Count_Total AS TOTAL, (CTE_Total.Count_Total - CTE_SLA_Violado.Count_SLA_Violado) * 1.0 / NULLIF(CTE_Total.Count_Total, 0) AS TSSS FROM CTE_SLA_Violado, CTE_Total; ```

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully