Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

cryteck

[Resolvido] Criar um view

Mensagens Recomendadas

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

Editado por cryteck

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

  • Voto 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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Editado por cryteck

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.
  • Voto 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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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 ...

  • Voto 1

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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 !

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.