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

Ajuda com Select em uma condição específica (PHP + SQL Server)


Guilherme Schimidt

Pergunta

Primeiramente boa tarde. Então, eu tenho uma tabela que lista a compra de Produtos para empresa, nessa tabela tem um coluna com a ID do Produto e uma coluna com a Data de compra. Agora eu preciso de um código para selecionar as ID dos Produtos que estiverem dentro de um intervalo de datas que eu definir. A ID do Produto SÓ pode estar entre esse intervalo, se ele estiver nesse intervalo mas também tiver antes ou depois desse intervalo eu não posso selecioná-lo .

Eu já tentei de tudo, Select com Distinct e tudo mais, porém não consegui chegar em alguma solução. O meu php já está pronto, porém não consigo fazer o select correto para pegar somente esses valores.

Alguém pode ajudar? Obrigado.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

essa sua tabela seria algo assim:

id    data
1  01/01/2014
2  02/01/2014
3  03/01/2014
4  04/01/2014
5  05/01/2014
6  06/01/2014
7  07/01/2014
8  08/01/2014
9  09/01/2014

e você quer listar por exemplo entre a data 04/01/2014 e 07/01/2014 ?

na verdade a ID do produto pode estar em várias datas, e eu posso só pegar se for a data mais recente e tiver dentro do periodo que eu selecionar..

Link para o comentário
Compartilhar em outros sites

  • 0

Então, eu criei uma tabela para ilustrar, o meu Select deve pegar os produtos que tiverem a última data de compra entre o período de 17/08/2014 a 19/08/2014, então os produtos que devem ser selecionados são os em vermelho apenas.

rUgbsju.jpg

P.S: Desculpe pelo tamanho da tabela, não consegui redimensioná-la aqui.

Editado por Guilherme Schimidt
Link para o comentário
Compartilhar em outros sites

  • 0

Olá Guilherme, boa tarde.

Creio que na sua imagem o produto 5 não deveria aparecer, afinal, ele possui uma compra no dia 16, data que esta fora do intervalo estipulado.

Uma solução para sua situação pode ser o seguinte select:

select * from compra as a
where a.dt_compra between '2014-08-17' and '2014-08-19'
and a.id_produto not in (

select b.id_produto from compra as b
  where b.id_produto = a.id_produto
  and b.dt_compra not between '2014-08-17' and '2014-08-19'

)

Deve existir uma solução menos Go Horse Process, mas foi o que pensei de momento.

Fiz os testes em: http://sqlfiddle.com/#!3/7e625/4

Espero ter ajudado, abraços.

_ _

Fabiano Abreu

Papo SQL

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...