Minha consulta roda no SQL Builder do ScriptCase, reconhece os campos na hora da criação da aplicação mas da “Erro ao acessar o banco de dados” quando rodo a aplicação, mesmo sem fazer nenhuma alteração na aplicação consulta.
Esse é o meu select:
SELECT
CASE
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 0 and 18 then ‘00 - 18’
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 19 and 23 then ‘19 - 23’
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 24 and 28 then ‘24 - 28’
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 29 and 33 then ‘29 - 33’
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 34 and 38 then ‘34 - 38’
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 39 and 43 then ‘39 - 43’
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 44 and 48 then ‘44 - 48’
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 49 and 53 then ‘49 - 53’
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 54 and 58 then ‘54 - 58’
else ‘>= 59’ end AS FAIXA_ETARIA,
CASE
WHEN A.CD_ULTIMO_CANCELAMENTO = 1 THEN ‘ROMPIMENTO CONTRATO - BENEFICIARIO’
WHEN A.CD_ULTIMO_CANCELAMENTO = 2 THEN ‘TERMINO VINCULO - BENEFICIÁRIO’
WHEN A.CD_ULTIMO_CANCELAMENTO = 3 THEN ‘DESLIGAMENTO DA EMPRESA - COLABORADOR’
WHEN A.CD_ULTIMO_CANCELAMENTO = 4 THEN ‘INADIMPLENCIA’
WHEN A.CD_ULTIMO_CANCELAMENTO = 5 THEN ‘OBITO’
WHEN A.CD_ULTIMO_CANCELAMENTO = 7 THEN ‘EXCLUSAO - MUDANCA DE CODIGO’
WHEN A.CD_ULTIMO_CANCELAMENTO = 8 THEN ‘TRANFERENCIA DE CARTEIRA’
WHEN A.CD_ULTIMO_CANCELAMENTO = 9 THEN ‘ALTERACAO COD. BENEFICIARIO’
WHEN A.CD_ULTIMO_CANCELAMENTO = 13 THEN ‘INCLUSAO INDEVIDA’
WHEN A.CD_ULTIMO_CANCELAMENTO = 88 THEN ‘ERRO CADASTRO’
WHEN A.CD_ULTIMO_CANCELAMENTO = 99 THEN ‘OUTROS’
ELSE
‘NAO INFORMADO’ END TIPO_CANCELAMENTO,
COUNT(A.CD_BENEFICIARIO) AS QUANTIDADE
FROM tabela_do_banco AS A
WHERE ( A.DS_SITUACAO_BENEFICIARIO = ‘CANCELADO’ )
AND date_format(A.DT_ULTIMO_CANCELAMENTO,’%Y-%m’) = ‘2020-01’
AND A.FL_STATUS_USUARIO IN (4,5)
GROUP BY
case
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 0 and 18 then ‘00 - 18’
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 19 and 23 then ‘19 - 23’
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 24 and 28 then ‘24 - 28’
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 29 and 33 then ‘29 - 33’
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 34 and 38 then ‘34 - 38’
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 39 and 43 then ‘39 - 43’
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 44 and 48 then ‘44 - 48’
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 49 and 53 then ‘49 - 53’
when (YEAR(CURDATE())-YEAR(A.DT_NASCIMENTO)) between 54 and 58 then ‘54 - 58’
else ‘>= 59’ end ,
CASE
WHEN A.CD_ULTIMO_CANCELAMENTO = 1 THEN ‘ROMPIMENTO CONTRATO - BENEFICIARIO’
WHEN A.CD_ULTIMO_CANCELAMENTO = 2 THEN ‘TERMINO VINCULO - BENEFICIÁRIO’
WHEN A.CD_ULTIMO_CANCELAMENTO = 3 THEN ‘DESLIGAMENTO DA EMPRESA - COLABORADOR’
WHEN A.CD_ULTIMO_CANCELAMENTO = 4 THEN ‘INADIMPLENCIA’
WHEN A.CD_ULTIMO_CANCELAMENTO = 5 THEN ‘OBITO’
WHEN A.CD_ULTIMO_CANCELAMENTO = 7 THEN ‘EXCLUSAO - MUDANCA DE CODIGO’
WHEN A.CD_ULTIMO_CANCELAMENTO = 8 THEN ‘TRANFERENCIA DE CARTEIRA’
WHEN A.CD_ULTIMO_CANCELAMENTO = 9 THEN ‘ALTERACAO COD. BENEFICIARIO’
WHEN A.CD_ULTIMO_CANCELAMENTO = 13 THEN ‘INCLUSAO INDEVIDA’
WHEN A.CD_ULTIMO_CANCELAMENTO = 88 THEN ‘ERRO CADASTRO’
WHEN A.CD_ULTIMO_CANCELAMENTO = 99 THEN ‘OUTROS’
ELSE
‘NAO INFORMADO’ END
Se eu usar as aliases no GROUP BY ele diz que não encontrou as colunas, mas no sql builder funciona normalmente.