Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Consulta SQL


Diene

Pergunta

Olá galera gostaria de uma ajudinha de voces se possivel.

Estou fazendo uma consulta que tem que me retornar o id dos filmes, o nome e a quantidade disponivel no dia 28/05/10, os filmes não podem estar nem locados e nem reservados nesta data. A principio já consegui fazer a consulta mas sem o count, não estou sabendo como coloca-lo no codigo.

O codigo correto:

SELECT distinct tit.nome,it.idfilme

FROM titulo tit,item it,locacao loc

WHERE tit.idtitulo = it.idtitulo AND

it.idfilme NOT IN (SELECT loc.idfilme FROM locacao loc,reserva r

where loc.data_locacao BETWEEN '2010-05-26' AND '2010-05-29'

AND r.data_reserva BETWEEN '2010-05-26' AND '2010-05-29');

aqui nesta consulta ele me da um erro dizendo que possuo muitas colunas na subconsulta apos a inclusao do count :

SELECT distinct tit.nome,it.idfilme

FROM titulo tit,item it,locacao loc

WHERE tit.idtitulo = it.idtitulo AND

it.idfilme NOT IN (SELECT loc.idfilme,count(loc.idfilme) FROM locacao loc,reserva r

where loc.data_locacao BETWEEN '2010-05-26' AND '2010-05-29'

AND r.data_reserva BETWEEN '2010-05-26' AND '2010-05-29' group by loc.idfilme) group by tit.nome,it.idfilme;

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Ok!!

Mas saca só fiz desta forma agora:

SELECT distinct tit.nome,count(it.idfilme),it.idfilme

FROM titulo tit,item it,locacao loc

WHERE tit.idtitulo = it.idtitulo AND

it.idfilme NOT IN (SELECT loc.idfilme FROM locacao loc,reserva r

where loc.data_locacao BETWEEN '2010-05-26' AND '2010-05-29'

AND r.data_reserva BETWEEN '2010-05-26' AND '2010-05-29') group by tit.nome,it.idfilme;

mas a contagem que esta me retornando está errada, está retornando o valor 15 em tudo.

Link para o comentário
Compartilhar em outros sites

  • 0

a mas olha q você ta adicionando a tabela locacao no select principal, mas não ta associando com nenhuma otra das duas tabelas. e ainda você nem usa ela no select, so ta usando na sub consulta. essa tabela locacao tem mesmo q aparecer no select principal?? se tiver, então você teria q linkar com uma das otras duas tabelas.

e ainda, aquele distinct não vai servir pra nd, misturar distinct com group by acho q so ia atrapalhar, tenta tirar o distinct tb.

mais o menos isso, tenta ai:

SELECT tit.nome,count(it.idfilme),it.idfilme

FROM titulo tit,item it

WHERE tit.idtitulo = it.idtitulo AND

it.idfilme NOT IN (SELECT loc.idfilme FROM locacao loc,reserva r

where loc.data_locacao BETWEEN '2010-05-26' AND '2010-05-29'
AND r.data_reserva BETWEEN '2010-05-26' AND '2010-05-29') group by tit.nome,it.idfilme;[/code]

e ainda, na subconsulta, olha q tem duas tabelas (locacao e reserva), mas você tb não relaciona as duas. ou acho q o q você queria na verdade seria tipo um union, não??

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...