Perguntas Ajuda com Sql
- cintra_daniel
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 95
- Obrigados Recebidos: 0
10 anos 11 meses atrás #19073
por cintra_daniel
Ajuda com Sql foi criado por cintra_daniel
Pessoal segue minha query, a linha onde está dando erro e o erro que está acontecendo.
SELECT DISTINCT ST4.T4_SERVICO, ST4.T4_NOME, STJ.TJ_ORDEM, STJ.TJ_CODBEM, ST9.T9_NOME,
STJ.TJ_DTMRINI,STJ.TJ_HOMRINI,STJ.TJ_DTMRFIM,STJ.TJ_HOMRFIM,
(SELECT TOP 1 TJ_DTMRFIM FROM STJ010
WHERE TJ_SERVICO = ST4.T4_SERVICO
AND TJ_DTMRFIM < STJ.TJ_DTMRINI
AND TJ_CODBEM = ST9.T9_CODBEM
AND D_E_L_E_T_ = ''
AND TJ_TERMINO = 'S'
AND STJ.TJ_SITUACA = 'L'
AND D_E_L_E_T_ = ''
ORDER BY TJ_DTMRFIM DESC
) AS DTANTERIOR,
DATEDIFF (DAY,
(SELECT TOP 1 TJ_DTMRFIM FROM STJ010
WHERE TJ_SERVICO = ST4.T4_SERVICO
AND TJ_DTMRFIM < STJ.TJ_DTMRINI
AND TJ_CODBEM = ST9.T9_CODBEM
AND D_E_L_E_T_ = ''
AND TJ_TERMINO = 'S'
AND STJ.TJ_SITUACA = 'L'
AND D_E_L_E_T_ = ''
ORDER BY TJ_DTMRFIM DESC),STJ.TJ_DTMRINI ) AS MKBF
,CONVERT(DECIMAL(10,2),DATEDIFF(MINUTE,STJ.TJ_DTMRINI + ' ' + STJ.TJ_HOMRINI,STJ.TJ_DTMRFIM + ' ' + STJ.TJ_HOMRFIM)) AS MTTR
FROM STJ010 STJ JOIN ST9010 ST9 ON (STJ.TJ_CODBEM=ST9.T9_CODBEM)
JOIN ST4010 ST4 ON (STJ.TJ_SERVICO=ST4.T4_SERVICO)
JOIN ST6010 ST6 ON (ST9.T9_CODFAMI=ST6.T6_CODFAMI)
WHERE STJ.TJ_TERMINO = 'S' AND STJ.TJ_SITUACA = 'L'
AND STJ.D_E_L_E_T_ = '' AND ST9.D_E_L_E_T_ = ''
AND ST4.D_E_L_E_T_ = '' AND ST6.D_E_L_E_T_ = ''
AND ST9.T9_CATBEM = '4' AND
( SELECT TOP 1 TJ_DTMRFIM FROM STJ010
WHERE TJ_SERVICO = ST4.T4_SERVICO
AND TJ_DTMRFIM < STJ.TJ_DTMRINI
AND TJ_CODBEM = ST9.T9_CODBEM
AND D_E_L_E_T_ = '' AND TJ_TERMINO = 'S'
AND STJ.TJ_SITUACA = 'L' AND D_E_L_E_T_ = ''
ORDER BY TJ_DTMRFIM DESC ) IS NOT NULL
AND ST9.T9_CODBEM BETWEEN ' ' AND 'ZZZZZZZZZZZZZZZZ'
AND ST6.T6_CODFAMI BETWEEN ' ' AND 'ZZZZZZ'
AND STJ.TJ_ORDEM BETWEEN ' ' AND 'ZZZZZZ'
AND STJ.TJ_DTMRFIM BETWEEN '20130101' AND '20131202'
AND STJ.TJ_SERVICO IN
('000001','000002','000003','000004','000006','000007',
'000008','000010','000011','000012','000013','000041',
'000042','000047')
ORDER BY STJ.TJ_DTMRFIM
Erro:
Mensagem 241, Nível 16, Estado 1, Linha 1
Falha ao converter data e/ou hora da cadeia de caracteres.
SELECT DISTINCT ST4.T4_SERVICO, ST4.T4_NOME, STJ.TJ_ORDEM, STJ.TJ_CODBEM, ST9.T9_NOME,
STJ.TJ_DTMRINI,STJ.TJ_HOMRINI,STJ.TJ_DTMRFIM,STJ.TJ_HOMRFIM,
(SELECT TOP 1 TJ_DTMRFIM FROM STJ010
WHERE TJ_SERVICO = ST4.T4_SERVICO
AND TJ_DTMRFIM < STJ.TJ_DTMRINI
AND TJ_CODBEM = ST9.T9_CODBEM
AND D_E_L_E_T_ = ''
AND TJ_TERMINO = 'S'
AND STJ.TJ_SITUACA = 'L'
AND D_E_L_E_T_ = ''
ORDER BY TJ_DTMRFIM DESC
) AS DTANTERIOR,
DATEDIFF (DAY,
(SELECT TOP 1 TJ_DTMRFIM FROM STJ010
WHERE TJ_SERVICO = ST4.T4_SERVICO
AND TJ_DTMRFIM < STJ.TJ_DTMRINI
AND TJ_CODBEM = ST9.T9_CODBEM
AND D_E_L_E_T_ = ''
AND TJ_TERMINO = 'S'
AND STJ.TJ_SITUACA = 'L'
AND D_E_L_E_T_ = ''
ORDER BY TJ_DTMRFIM DESC),STJ.TJ_DTMRINI ) AS MKBF
,CONVERT(DECIMAL(10,2),DATEDIFF(MINUTE,STJ.TJ_DTMRINI + ' ' + STJ.TJ_HOMRINI,STJ.TJ_DTMRFIM + ' ' + STJ.TJ_HOMRFIM)) AS MTTR
FROM STJ010 STJ JOIN ST9010 ST9 ON (STJ.TJ_CODBEM=ST9.T9_CODBEM)
JOIN ST4010 ST4 ON (STJ.TJ_SERVICO=ST4.T4_SERVICO)
JOIN ST6010 ST6 ON (ST9.T9_CODFAMI=ST6.T6_CODFAMI)
WHERE STJ.TJ_TERMINO = 'S' AND STJ.TJ_SITUACA = 'L'
AND STJ.D_E_L_E_T_ = '' AND ST9.D_E_L_E_T_ = ''
AND ST4.D_E_L_E_T_ = '' AND ST6.D_E_L_E_T_ = ''
AND ST9.T9_CATBEM = '4' AND
( SELECT TOP 1 TJ_DTMRFIM FROM STJ010
WHERE TJ_SERVICO = ST4.T4_SERVICO
AND TJ_DTMRFIM < STJ.TJ_DTMRINI
AND TJ_CODBEM = ST9.T9_CODBEM
AND D_E_L_E_T_ = '' AND TJ_TERMINO = 'S'
AND STJ.TJ_SITUACA = 'L' AND D_E_L_E_T_ = ''
ORDER BY TJ_DTMRFIM DESC ) IS NOT NULL
AND ST9.T9_CODBEM BETWEEN ' ' AND 'ZZZZZZZZZZZZZZZZ'
AND ST6.T6_CODFAMI BETWEEN ' ' AND 'ZZZZZZ'
AND STJ.TJ_ORDEM BETWEEN ' ' AND 'ZZZZZZ'
AND STJ.TJ_DTMRFIM BETWEEN '20130101' AND '20131202'
AND STJ.TJ_SERVICO IN
('000001','000002','000003','000004','000006','000007',
'000008','000010','000011','000012','000013','000041',
'000042','000047')
ORDER BY STJ.TJ_DTMRFIM
Erro:
Mensagem 241, Nível 16, Estado 1, Linha 1
Falha ao converter data e/ou hora da cadeia de caracteres.
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
- cintra_daniel
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 95
- Obrigados Recebidos: 0
10 anos 11 meses atrás #19077
por cintra_daniel
Respondido por cintra_daniel no tópico Ajuda com Sql
SE EU SELECIONAR SOMENTE A CONCATENAÇÃO DOS CAMPOS:
SELECT
STJ.TJ_DTMRINI + ' ' + STJ.TJ_HOMRINI,STJ.TJ_DTMRFIM + ' ' + STJ.TJ_HOMRFIM
....
É ESSE O RETORNO QUE EU RECEBO..
20130102 13:00 20130102 14:00
20130102 14:31 20130102 14:40
20130102 14:41 20130102 14:50
20130102 14:51 20130102 15:00
20130102 15:01 20130102 15:10
20130102 15:11 20130102 15:20
SELECT
STJ.TJ_DTMRINI + ' ' + STJ.TJ_HOMRINI,STJ.TJ_DTMRFIM + ' ' + STJ.TJ_HOMRFIM
....
É ESSE O RETORNO QUE EU RECEBO..
20130102 13:00 20130102 14:00
20130102 14:31 20130102 14:40
20130102 14:41 20130102 14:50
20130102 14:51 20130102 15:00
20130102 15:01 20130102 15:10
20130102 15:11 20130102 15:20
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
10 anos 11 meses atrás #19081
por kanaamlrr
Respondido por kanaamlrr no tópico Ajuda com Sql
Você tem certeza que não tem nenhum dado "estranho" na tabela, pois a sintaxe está correta e com esses valores que você me passou está tudo ok.
Faça o seguinte teste:
SELECT DATEDIFF(MINUTE,STJ.TJ_DTMRINI + ' ' + STJ.TJ_HOMRINI,STJ.TJ_DTMRFIM + ' ' + STJ.TJ_HOMRFIM)
FROM...
veja se ele consegue resolver.
Se não conseguir, vai ter que dar uma olhada nas informações que estão nessa tabela.
Faça o seguinte teste:
SELECT DATEDIFF(MINUTE,STJ.TJ_DTMRINI + ' ' + STJ.TJ_HOMRINI,STJ.TJ_DTMRFIM + ' ' + STJ.TJ_HOMRFIM)
FROM...
veja se ele consegue resolver.
Se não conseguir, vai ter que dar uma olhada nas informações que estão nessa tabela.
Por favor Acessar ou Registrar para participar da conversa.
- cintra_daniel
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 95
- Obrigados Recebidos: 0
10 anos 11 meses atrás #19088
por cintra_daniel
Respondido por cintra_daniel no tópico Ajuda com Sql
Kanaãm realmente,
o problema estava sendo gerado porque em alguns meses havia registros de hora com 29:00 , ou 32:00 , a query em si não tinha problema algum.
De qualquer forma obrigado.
o problema estava sendo gerado porque em alguns meses havia registros de hora com 29:00 , ou 32:00 , a query em si não tinha problema algum.
De qualquer forma obrigado.
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
Tempo para a criação da página:0.122 segundos