cryteck Posted December 28, 2012 at 10:31 PM Report #488879 Posted December 28, 2012 at 10:31 PM (edited) Boas pessoal Eu tenho 2 tabelas Tabela Aluguer tem CodQuarto - Tem codigo de todos os quartos alugados Tabela Quarto CodQuarto RendaMensal - Tem codigo de todos, todos os quartos e a sua renda Preciso de fazer uma consulta que devolva o quarto mais barato e dísponível. Ou seja teoricamente tenho de ir á tabela Quarto "buscar" todos os quartos que não estejam na tabela Aluguer e desses quartos apresentar o que tem a renda mensal mais baixa. SELECT dbo.Quarto.CodigoQuarto, MIN(dbo.Quarto.RendaMensal) AS Renda FROM dbo.Quarto INNER JOIN dbo.Aluguer ON dbo.Quarto.CodigoQuarto = dbo.Aluguer.CodigoQuarto WHERE(dbo.Quarto.CodigoQuarto IN (SELECT CodigoQuarto FROM dbo.Aluguer AS Aluguer_1)) GROUP BY dbo.Quarto.CodigoQuarto Para já tenho este código mas tá a dar os quartos que estão alugados por ordem de renda mensal inferior para a superior ... Como deverei proceder , dêem me uma ajudinha 🙂 Cumps Edited December 28, 2012 at 10:47 PM by cryteck
pmg Posted December 28, 2012 at 11:07 PM Report #488889 Posted December 28, 2012 at 11:07 PM Eu nao percebo muito de SQL Server, mas estas a seleccionar as linhas que fazem parte de outra tabela. Acho que tens de usar o NOT IN. Eu tambem simplificava o teu query. select top 1 CodigoQuarto, RendaMensal from Quarto where CodigoQuarto not in (select CodigoQuarto from Aluguer) order by RendaMensal 1 Report What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
HappyHippyHippo Posted December 28, 2012 at 11:08 PM Report #488890 Posted December 28, 2012 at 11:08 PM where ... NOT IN () 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
cryteck Posted December 28, 2012 at 11:21 PM Author Report #488894 Posted December 28, 2012 at 11:21 PM (edited) Obrigado desde já vou testar e depois digo alguma coisa. Funciona mas para que serve o top 1? Será que vai buscar o primeiro porque o order por defeito ta ascendente? Pmg se tu não percebes e fizeste isso sem testar ... Muito obrigado a todos Cumps Edited December 28, 2012 at 11:29 PM by cryteck
pmg Posted December 28, 2012 at 11:41 PM Report #488895 Posted December 28, 2012 at 11:41 PM para que serve o top 1? De acordo com a documentacao serve para Limits the rows returned in a query result set to a specified number of rows or percentage of rows in SQL Server 2012. 1 Report What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
cryteck Posted December 28, 2012 at 11:44 PM Author Report #488897 Posted December 28, 2012 at 11:44 PM Muito obrigado já percebi 🙂 .
HappyHippyHippo Posted December 28, 2012 at 11:44 PM Report #488898 Posted December 28, 2012 at 11:44 PM Pmg se tu não percebes e fizeste isso sem testar ... ele disse que não percebe muito porque na realidade o SQL deveria ser igual para todos os sistemas, mas na realidade cada um implementa pequenas alteração a gosto. assim como o top é um comando Microsoft ... 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
fearz7 Posted December 29, 2012 at 12:54 PM Report #488920 Posted December 29, 2012 at 12:54 PM A resolução indicada está errada! Digo isto porque se houver mais que um quarto com o mesmo preço, essa view apenas vai retornar um desses quartos . . . Já para nao falar de datas de entradas e datas de saída, o quarto pode ter sido alugado, mas pode, por sua vez, já se encontrar disponível !
pmg Posted December 29, 2012 at 02:00 PM Report #488923 Posted December 29, 2012 at 02:00 PM A resolução indicada está errada! Podes dar uma solucao diferente que funcione com a tua interpretacao do problema? A gente gosta sempre de ver diversas maneiras (correctas, de preferencia) de resolver problemas. What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
fearz7 Posted December 29, 2012 at 03:29 PM Report #488925 Posted December 29, 2012 at 03:29 PM Poderia, contudo a pessoa em questão está a desenvolver o mesmo trabalho prático que eu, desta forma, por precaução acho melhor não colocar. Contudo, acho que dei umas dicas que considero importantes na resolução da vista!
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