maomelov Posted March 19, 2012 Report Share Posted March 19, 2012 Boa Tarde, Tenho as seguintes tabelas: Editoras – informação acerca das editoras; i) Número da editora – valor numérico inteiro, chave primária; IDENTITY(1,1); ii) Nome - texto, tamanho variável - 1000; obrigatório; iii) Morada - texto, tamanho variável - 1000; obrigatório; iv) Código postal - texto, tamanho fixo - 8; obrigatório; v) Localidade - texto, tamanho variável - 1000; obrigatório; vi) Telefone - texto, tamanho variável - 16; obrigatório; UNIQUE; vii) Email - texto, tamanho 250; UNIQUE; viii) Website - texto, tamanho variável - 1000; ix) Responsável para contacto - texto, tamanho variável - 1000; Edições – informação acerca das edições de cada obra; i) Número da edição – valor numérico inteiro, chave primária; IDENTITY(1,1); ii) Obra – chave externa – relação com tabela Obras; iii) Editora – chave externa – relação com tabela Editoras; iv) Data de lançamento – Data; obrigatório; Livros – informação acerca de cada livro; i) Número do livro - valor numérico inteiro, chave primária; IDENTITY(1,1); ii) Edição - chave externa – relação com tabela Edições; iii) Data de aquisição – Data; obrigatório; default value – GETDATE(); iv) Custo – MONEY, obrigatório; default value – 0; valor superior a zero; Livros Requisitados id_livro id_requisicao Preciso de criar uma VIEW para obter os dados das duas editoras com maior número de livros requisitados; tenho a seguinte sintaxe: create view vw_20 as select top(2) tb_editoras.* from tb_editoras inner join tb_edicoes on tb_editoras.id_editora = tb_edicoes.id_editora inner join tb_livros on tb_edicoes.id_edicao = tb_livros.id_edicao where tb_livros.id_livro in ( select id_livro from tb_livros_requisitados group by id_livro order by COUNT(id_requisicao) desc ) go que dá o seguinte erro: Msg 1033, Level 15, State 1, Line 11 The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified. podem ajudar pf?? Link to comment Share on other sites More sharing options...
f-22 Posted March 19, 2012 Report Share Posted March 19, 2012 tira o order da view e ordena quando chamas a view. blog.sqlauthority.com/2010/08/23/sql-server-order-by-does-not-work-limitation-of-the-views-part-1/ Link to comment Share on other sites More sharing options...
maomelov Posted March 19, 2012 Author Report Share Posted March 19, 2012 eu ja estou a usar o top...como posso dar a volta a sintaxe? Link to comment Share on other sites More sharing options...
maomelov Posted March 19, 2012 Author Report Share Posted March 19, 2012 é que além do erro do order by não sei se a query está correcta...podem ajudar? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now