AJUDA SQL
Boa tarde a todos..alguem pode me ajudar com esse case
Queria que se o campo HoraSoli fosse igual a campo HoraChamada ele me retornar-se um valor em branco ou tipo [ô]__:__[Ô] e case seja diferente me retorne a horasoli.
mas esta dando erro ,alguem sabe como posso fazer isso
Desde ja agradeço!!
SELECT A.*,B.S_Dsc_CaracAtend,
case A.S_Dsc_HoraSoli
when A.S_Dsc_HoraChamada = A.S_Dsc_HoraSoli then A.S_Dsc_HoraSoli --Erro esta dando aqui no[ô] = [ô]
else A.S_Dsc_DtSoli
end as S_Dsc_Prorrog,
Case A.N_CD_Filial
When A.N_CD_Origem
Then (Select C.S_Dsc_Fantasia From Tbl_Cliente as C Where C.N_CD_Codigo = A.N_CD_Cliente And C.N_CD_Filial = A.N_CD_FilialCli)
When A.N_CD_Filial Then (Select C.S_Dsc_Nome From Tbl_Unidade as C Where C.N_CD_Empresa = A.N_CD_Origem) End As S_Dsc_Fantasia
FROM TBL_Chamadas As A
INNER JOIN TBL_Cliente As B ON B.N_CD_Codigo = A.N_CD_Cliente AND B.N_CD_Filial = A.N_CD_FilialCli
Where A.N_CD_Filial = 1
AND A.N_Dsc_Tipo <> 9
AND A.N_CD_Status = 1
AND A.S_Dsc_DtSoli = [ô]2010/03/03[ô]
ORDER BY A.S_Dsc_HoraSoli,A.S_Dsc_HoraChamada, A.N_CD_Codigo
Queria que se o campo HoraSoli fosse igual a campo HoraChamada ele me retornar-se um valor em branco ou tipo [ô]__:__[Ô] e case seja diferente me retorne a horasoli.
mas esta dando erro ,alguem sabe como posso fazer isso
Desde ja agradeço!!
SELECT A.*,B.S_Dsc_CaracAtend,
case A.S_Dsc_HoraSoli
when A.S_Dsc_HoraChamada = A.S_Dsc_HoraSoli then A.S_Dsc_HoraSoli --Erro esta dando aqui no[ô] = [ô]
else A.S_Dsc_DtSoli
end as S_Dsc_Prorrog,
Case A.N_CD_Filial
When A.N_CD_Origem
Then (Select C.S_Dsc_Fantasia From Tbl_Cliente as C Where C.N_CD_Codigo = A.N_CD_Cliente And C.N_CD_Filial = A.N_CD_FilialCli)
When A.N_CD_Filial Then (Select C.S_Dsc_Nome From Tbl_Unidade as C Where C.N_CD_Empresa = A.N_CD_Origem) End As S_Dsc_Fantasia
FROM TBL_Chamadas As A
INNER JOIN TBL_Cliente As B ON B.N_CD_Codigo = A.N_CD_Cliente AND B.N_CD_Filial = A.N_CD_FilialCli
Where A.N_CD_Filial = 1
AND A.N_Dsc_Tipo <> 9
AND A.N_CD_Status = 1
AND A.S_Dsc_DtSoli = [ô]2010/03/03[ô]
ORDER BY A.S_Dsc_HoraSoli,A.S_Dsc_HoraChamada, A.N_CD_Codigo
Não tem como eu testar mas olhando o código, parece que basta só você tirar o [Ô]A.S_Dsc_HoraSoli[Ô] da frente do CASE uma vez que o teste lógico já é feito no WHEN.
SELECT A.*,
B.S_Dsc_CaracAtend,
CASE
WHEN A.S_Dsc_HoraChamada = A.S_Dsc_HoraSoli
THEN A.S_Dsc_HoraSoli
ELSE A.S_Dsc_DtSoli
END AS S_Dsc_Prorrog,
CASE A.N_CD_Filial
WHEN A.N_CD_Origem
THEN (SELECT C.S_Dsc_Fantasia
FROM Tbl_Cliente AS C
Where C.N_CD_Codigo = A.N_CD_Cliente
AND C.N_CD_Filial = A.N_CD_FilialCli)
WHEN A.N_CD_Filial
THEN (SELECT C.S_Dsc_Nome
FROM Tbl_Unidade AS C
WHERE C.N_CD_Empresa = A.N_CD_Origem)
END AS S_Dsc_Fantasia
FROM TBL_Chamadas AS A
INNER JOIN TBL_Cliente AS B
ON B.N_CD_Codigo = A.N_CD_Cliente
AND B.N_CD_Filial = A.N_CD_FilialCli
WHERE A.N_CD_Filial = 1
AND A.N_Dsc_Tipo <> 9
AND A.N_CD_Status = 1
AND A.S_Dsc_DtSoli = [ô]20100303[ô]
ORDER BY A.S_Dsc_HoraSoli, A.S_Dsc_HoraChamada, A.N_CD_Codigo
Certinho cara...valeu pela ajuda!!!
Tópico encerrado , respostas não são mais permitidas