Bom dia pessoal,
Estou precisando categorizar dados de um select através do CASE conforme código abaixo. No SQL Builder o Select funciona normalmente porém ao utilizar este comando em uma aplicação de Consulta dá erro.
O que aconteceu:
No menu “Consulta–> Editar Campos”, não aparecem os campos. Então removi os 7 primeiros campos do select e executei, e então mostrou os campos “OrdemAno” e “TipoAno”. Então recoloquei no select os campos retirados anteriormente e consegui pelo menos executar a consulta corretamnete (Vai entender).
Porém o que eu preciso é fazer a Quebra do campo “TipoAno” e acontece o erro abaixo. Alguma sugestão?
SELECT
CRM_TIPOATENDIMENTO,
CRM_SITUACAO,
CRM_CLIENTE,
CRM_CONTATO,
CRM_USUARIO,
CRM_DATA_ATENDIMENTO,
CRM_PROXIMA_DATA_ATEN,
YEAR(CRM_DATA_ATENDIMENTO) AS OrdemAno,
CASE YEAR(CRM_DATA_ATENDIMENTO)
WHEN 2014 THEN 'Ano 1'
WHEN 2013 THEN 'Ano 2'
WHEN 2012 THEN 'Ano 3'
ELSE 'Ano 4 e posteriores' END AS TipoAno
FROM dbo.CRM2;
Erro ao executar aplicação com quebra estática no campo “TipoAno”:
Erro ao acessar o banco de dados
SQLState: 42000 Error Code: 156 Message: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near the keyword ‘order’. SQLState: 42000 Error Code: 156 Message: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near the keyword ‘order’.
SELECT CRM_TIPOATENDIMENTO, CRM_SITUACAO, CRM_CLIENTE, CRM_CONTATO, CRM_USUARIO, YEAR(CRM_DATA_ATENDIMENTO) as ordemano, CASE YEAR(CRM_DATA_ATENDIMENTO) WHEN 2014 THEN ‘Ano 1’ WHEN 2013 THEN ‘Ano 2’ WHEN 2012 THEN ‘Ano 3’ ELSE ‘Ano 4 e posteriores’ END as tipoano from dbo.CRM2; order by CASE YEAR(CRM_DATA_ATENDIMENTO) WHEN 2014 THEN ‘Ano 1’ WHEN 2013 THEN ‘Ano 2’ WHEN 2012 THEN ‘Ano 3’ ELSE ‘Ano 4 e posteriores’ END asc