A idéia é calcular o tempo que um ticket ficou em status 5 (status de aguardando). Para tal devemos subtrair o SMDATA imediatamente após o status 5 do SMDATA onde o status entrou em 5.
No exemplo seria "2010-07-31 23:42:24.000" - "2010-07-31 14:32:37.607", porém tem uma condição: deve considerar apenas os status 5 aonde o SMUsuID IN ('34','39','44','53041','215550','215552','297086','575417','647421','660447','824288','836393','1183054','1186491','1211384','1236702','1238615','1238616','1243339','1243340',
'243341','1386201','1386203','1390108','1390496','1391115','1391701','1395860','1416049','1644377','1644378','1644379','1644380','1765005','1765006','1765008','1766058',
'176059','1769384','1769385','1769386','1769388','1772579','1772580','1772581','1772703','1794160','1794161','1795877','1795878','1795879','1795880','1795881','1795882',
'179887','1801164','1801165','1801166','1989797')
Outro detalhe, essa tabela deve ter um inner join com uma tabela chamada Solicitacao onde o vínculo será StatusMotivo.SMSolID = Solicitacao.SolID
Cheguei a filtrar os dados do mês, mas não tenho ideia de como calcular o
SELECT
StatusMotivo.SMSolID,
StatusMotivo.SMData,
StatusMotivo.SMStatus,
(SELECT UsuNome FROM Usuario U WHERE U.UsuID = StatusMotivo.SMUsuID) Responsável
FROM
StatusMotivo
INNER JOIN Solicitacao ON StatusMotivo.SMSolID = Solicitacao.SolID
WHERE
StatusMotivo.SMData BETWEEN '2012-04-01 00:00:00' AND '2012-04-30 23:59:59'
AND StatusMotivo.SMStatus = '5'
AND StatusMotivo.SMUsuID IN ('34','39','44','53041','215550','215552','297086','575417','647421','660447','824288','836393','1183054','1186491','1211384','1236702','1238615','1238616','1243339','1243340',
'243341','1386201','1386203','1390108','1390496','1391115','1391701','1395860','1416049','1644377','1644378','1644379','1644380','1765005','1765006','1765008','1766058',
'176059','1769384','1769385','1769386','1769388','1772579','1772580','1772581','1772703','1794160','1794161','1795877','1795878','1795879','1795880','1795881','1795882',
'179887','1801164','1801165','1801166','1989797')
ORDER BY SMData ASC
Falta calcular o tempo que o ticket ficou nesse status de aguardando, pode ser em segundos mesmo com o DATEDIFF(SECOND...)
Obs: Em casos onde o ultimo status é o status 5, ou seja, não foi alterado o status para 1 novamente deve-se considerar o getdate() - SMdata que foi colocado em status 5.
Pergunta
sebola
Bom dia,
Estou quebrando a cabeça na hora de bolar uma consulta no banco para fins de relatórios.
Tenho uma tabela chamada StatusMotivo que armazena alterações de status em um ticket(este é apenas um exemplo dela):
A idéia é calcular o tempo que um ticket ficou em status 5 (status de aguardando). Para tal devemos subtrair o SMDATA imediatamente após o status 5 do SMDATA onde o status entrou em 5. No exemplo seria "2010-07-31 23:42:24.000" - "2010-07-31 14:32:37.607", porém tem uma condição: deve considerar apenas os status 5 aonde o SMUsuID IN ('34','39','44','53041','215550','215552','297086','575417','647421','660447','824288','836393','1183054','1186491','1211384','1236702','1238615','1238616','1243339','1243340', '243341','1386201','1386203','1390108','1390496','1391115','1391701','1395860','1416049','1644377','1644378','1644379','1644380','1765005','1765006','1765008','1766058', '176059','1769384','1769385','1769386','1769388','1772579','1772580','1772581','1772703','1794160','1794161','1795877','1795878','1795879','1795880','1795881','1795882', '179887','1801164','1801165','1801166','1989797') Outro detalhe, essa tabela deve ter um inner join com uma tabela chamada Solicitacao onde o vínculo será StatusMotivo.SMSolID = Solicitacao.SolID Cheguei a filtrar os dados do mês, mas não tenho ideia de como calcular oFalta calcular o tempo que o ticket ficou nesse status de aguardando, pode ser em segundos mesmo com o DATEDIFF(SECOND...)
Obs: Em casos onde o ultimo status é o status 5, ou seja, não foi alterado o status para 1 novamente deve-se considerar o getdate() - SMdata que foi colocado em status 5.
Alguém poderia me dar uma luz? :wacko:
Muito Obrigado
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.