maomelov Posted March 19, 2012 Report Share Posted March 19, 2012 Boa Noite, 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 top 100 percent id_livro from tb_livros_requisitados group by id_livro order by COUNT(id_requisicao) desc ) go nao tenho erro de sintaxe mas sim de lógica que nao consigo perceber qual é...a query nao retorna os valores correctos podem ajudar pf? EDIT: Titulo modificado Link to comment Share on other sites More sharing options...
M6 Posted April 11, 2012 Report Share Posted April 11, 2012 Podes usar a função count e ordenar por esse valor. Depois podes retirar apenas as linhas que queres com o row number: http://msdn.microsoft.com/en-us/library/ms186734.aspx 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." 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