Jump to content
cryteck

[Resolvido] Criar um view

Recommended Posts

cryteck

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 by cryteck

Share this post


Link to post
Share on other sites
pmg

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

  • Vote 1

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!

Share this post


Link to post
Share on other sites
cryteck

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 by cryteck

Share this post


Link to post
Share on other sites
pmg

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.
  • Vote 1

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!

Share this post


Link to post
Share on other sites
HappyHippyHippo

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 ...

  • Vote 1

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
fearz7

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 !

Share this post


Link to post
Share on other sites
pmg

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!

Share this post


Link to post
Share on other sites
fearz7

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!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.