Usuário com melhor resposta
CASE

Pergunta
-
Olá pessoal estou tentando fazer um CASE no VB.NET igual no SQL mais está dando um erro de sintaxe.
Segue o meu codigo:
SELECT
NR_IDENT_USUARIO AS DI,
PB_CARGA AS [Peso Bruto],
PL_CARGA AS [Peso Líquido],
CD_URF_ENTR_CARGA AS [URF Entrada], CD_VIA_TRANSP_CARG AS [Via TRansporte],
'Pais de Procedência' = CASE WHEN CD_PAIS_PROC_CARGA = '399' THEN 'JAPÃO'
ELSE 'Not Type'
END,
MID(NR_IMPORTADOR,1,2)+'.'+MID(NR_IMPORTADOR,3,3)+'.'+MID(NR_IMPORTADOR,6,3)+'/'+MID(NR_IMPORTADOR,9,4)+'-'+MID(NR_IMPORTADOR,13,2) AS Importador
FROM DECLARAÇÃO_IMPORTAÇÃO
Respostas
Todas as Respostas
-
-
Eu acredito que seu CASE deveria ser assim:
CASE CD_PAIS_PROC_CARGA WHEN '399' THEN 'Japão' ELSE 'Not Type'
se o campo CD_PAIS_PROC_CARGA armazenar um número tire as aspas simples de '399'.
Preste atenção também nas funções. MID() é do Acces e não existe no SQL Server. Você não diz qual banco está usando.
Sempre informe o banco e a mensagem de erro.
-
Vitor esse select é para um result no meu Crystal Report, estou usando uma conexão com um BD access.
Eu sei que a sintaxe MID não e do SQL.
Se eu tirar O CASE meu select funcinar normal, o meu problema está no CASE para ao inves de sair no relatorio "399" sair o nome JAPAO.
-
-
-
-
Bom dia Julio tenta assim
SELECT
NR_IDENT_USUARIO AS DI,
PB_CARGA AS [Peso Bruto],
PL_CARGA AS [Peso Líquido],
CD_URF_ENTR_CARGA AS [URF Entrada], CD_VIA_TRANSP_CARG AS [Via TRansporte],
CASE WHEN CD_PAIS_PROC_CARGA = '399' THEN 'JAPÃO'
ELSE 'Not Type' END as 'Pais de Procedência' ,
Substring(NR_IMPORTADOR,1,2)+'.'+SubString(NR_IMPORTADOR,3,3)+'.'+SubString(NR_IMPORTADOR,6,3)+'/'+SubString(NR_IMPORTADOR,9,4)+'-'+SubString(NR_IMPORTADOR,13,2) AS Importador
FROM [DECLARAÇÃO_IMPORTAÇÃO]Espero ter ajudado
-
Continua dando erro de Sintaxe.
erro:
Query Engine Error: 'DAO Error Code: 0xc03
Source: DAO.Database
Description: Erro de Sintaxe (Operador Faltando) na expressão de Consulta 'CASE WHEN CD_PAIS_PROC_CARGA = '399' THEN 'JAPÃO' ELSE 'Not Type' END
-