Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cirilo Junior

select funciona no SqlServer 2008 e não funciona no 2014 - P Feras SQL

Recommended Posts

Pessoal estamos migrando nossso banco de dados e site para um novo servidor.

No servidor atual temos o sql server 2008 e no novo vai ser o sql server 2014 porem temos uma consulta sql que funciona no sql server 2008 mas da erro no sql server 2014.

Consulta executada

==============================================================

Select vc.ordem, Max(vc.perclick) perclick, vc.idcatalogo, vc.livro, vc.nome, vc.idioma, vc.autor, vc.descricao,
vc.editora, vc.email, vc.ext, Max(vc.id_subcat) id_subcat From vCatalogoCompletoCreditos vc Where (vc.codbanner = 'catalogo')
And (vc.id_cat=12) Group By vc.idcatalogo, vc.livro, vc.nome, vc.idioma, vc.autor, vc.descricao, vc.editora, vc.email,
vc.ext, vc.filtro, vc.ordem
Order by vc.ordem, vc.perclick Desc

==============================================================

 

No SQL 2014 retorna o seguinte erro:
Column "vCatalogoCompletoCreditos.perclick" is invalid in the ORDER BY clause because it is not contained in either an aggregate function or the GROUP BY clause.

========================================================

Alguem sabe me dizer se é alguma configuração no banco de dados?

Obs:As tabelas e as mesmas

Alguem ja por isso?

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem certeza de que funcionava ? Tem uma função de grupo (max) e não tem a declaração dd "group by" .

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Motta, o Group By esta ali perdido :p

 

@Cirilo, substitua o ORDER BY pelo MAX

 

 

Select você.ordem
, Max(você.perclick) perclick
, você.idcatalogo
, você.livro
, você.nome
, você.idioma
, você.autor
, você.descricao
, você.editora
, você.email
, você.ext
, Max(você.id_subcat) id_subcat 
From vCatalogoCompletoCreditos você 
Where (você.codbanner = 'catalogo')
And (você.id_cat=12) 
Group By você.idcatalogo
, você.livro
, você.nome
, você.idioma
, você.autor
, você.descricao
, você.editora
, você.email
, você.ext
, você.filtro
, você.ordem
 Order by você.ordem
-- , você.perclick Desc
, Max(você.perclick) DESC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cirilo, funcionava na versão 2008? :coolio:

 

A mensagem de erro aponta para a cláusula ORDER BY. Uma opção é reescrever a cláusula, passando para

Order by você.ordem, perclick Desc

 

Para ORDER BY existe diferença entre você.perclick (uma coluna da tabela) e perclick (o alias criado para a coluna de saída).

 

Entretanto, o que eu faria seria evitar que o alias tivesse o mesmo nome da coluna.

Agora, quando encontro um comando SELECT com a cláusula GROUP BY imensa, com (quase) todas as colunas que fazem parte da lista_de_seleção, logo percebo um comando que deveria ser reescrito.

 

 

-----

linkedin.gif José Diz Belo Horizonte, MG - Brasil

-----

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valew a todos pelas dicas.

Conseguimos resolver usando as ideias que me enviaram.


Tem certeza de que funcionava ? Tem uma função de grupo (max) e não tem a declaração dd "group by" .

Sim, no 2008 funcionava.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.