Jump to content
sreletronica

consulta 2 tabelas com condição tabela 2 data vigente

Recommended Posts

boa tarde, pessoal, preciso juntar duas tabelas, sendo a primeira apresentando todos os registros contido nela, com a condição de o que estiver na segunda tabela tem um preço menor com data_ini e dt_fim usando o current_date para definir se esta dentro da condição ou seja, dentro da data vigente..

exemplo

tabela1
------------------------------------------------------------------------------------------------------
cod_barras             | descrição                       | preco
--------------------------------------------------------------------------------------------------------
00000000000017 | PAO DE SAL                   | 0,50
00000000000122 | PEPSI 1 5L                     | 5,00
00000000000987 | TAIOBA                           | 2,00
00000000001526 | ALHO KG                        | 20,00


tabela 2 
------------------------------------------------------------------------------------------------------
barras                      | preco                   | DT_ini              |  DT_FIM
--------------------------------------------------------------------------------------------------------
00000000000017 | 0,30                       | 03/11/2017 | 10/11/2017
00000000001526 | 15,00                     | 05/11/2017 | 08/11/2017

considerando que a current_date = 04/11/2017
deveria ficar asim..
------------------------------------------------------------------------------------------------------
cod_barras | descrição | preco
--------------------------------------------------------------------------------------------------------
00000000000017 | PAO DE SAL | 0,30
00000000000122 | PEPSI 1 5L | 5,00
00000000000987 | TAIOBA | 2,00
00000000001526 | ALHO KG | 20,00



considerando que a current_date = 07/11/2017
deveria ficar asim..
------------------------------------------------------------------------------------------------------
cod_barras | descrição | preco
--------------------------------------------------------------------------------------------------------
00000000000017 | PAO DE SAL | 0,30
00000000000122 | PEPSI 1 5L | 5,00
00000000000987 | TAIOBA | 2,00
00000000001526 | ALHO KG | 15,00


considerando que a current_date = 11/11/2017
deveria ficar asim..
------------------------------------------------------------------------------------------------------
cod_barras | descrição | preco
--------------------------------------------------------------------------------------------------------
00000000000017 | PAO DE SAL | 0,50
00000000000122 | PEPSI 1 5L | 5,00
00000000000987 | TAIOBA | 2,00
00000000001526 | ALHO KG | 20,00



ou seja, preciso que um item que exista na tabela 2 dentro de uma data especifica pegar o preco da tabela 2 e não da tabela 1...

vai pegar o valor da tabela 1, se não estiver contido na tabela 2 e dentro da data vigente..

quem puder ajudar... ta um pouco difícil 

Share this post


Link to post
Share on other sites

Dica , faça um union

 

da tabela1

 

com um join da tabela taleba1 e tabela2 , o join para obetar a descrição , filtrando aqui a data,

between DT_ini and DT_FIM

 

coloque este union em uma tabela virtual e dela extraia o menor preco

 

 

 

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Kefatif
      Prezados, bom dia.
       
      Utilizo as linguagens: php, html e banco de dados mysql.
       
      Tenho uma tabela que deveria trazer todos os registros localizados no banco de dados, porém me traz apenas um.
       
      Quando rodo a Query sozinha direto no banco ela me traz todos os registros, mas ao incluir no código php/html me traz apenas o primeiro registro, segue o código abaixo:
       
      $sqlnominal = "SELECT A.CNES, C.NOME_UNIDADE, A.NOME_PACIENTE, A.CPF, A.CNS, A.DATA_NASC, B.DATA_DISPENSACAO, B.CANETA_NPH, B.CANETA_REGULAR FROM insulino_cadastro A INNER JOIN insulino_dispensacao B ON A.ID_PACIENTE = B.ID_PACIENTE INNER JOIN unidades C ON A.CNES = C.CNES and (B.CANETA_NPH != '' or B.CANETA_REGULAR != '')"; $resultnominal = mysqli_query($con, $sqlnominal); $rownominal = mysqli_fetch_array($resultnominal); ?> <table class="table table-hover table-bordered" id="tabela-dispensacao2" style="margin-top:0.2%"> <tr> <th>UNIDADE</th> <th>PACIENTE</th> <th>CPF</th> <th>CNS</th> <th>DATA DE<br>NASCIMENTO</th> <th>RETIRADA</th> <th>CANETA NPH</th> <th>CANETA REGULAR</th> </tr> <td><?php echo $rownominal["CNES"]?></td> <td><?php echo $rownominal["NOME_PACIENTE"]?></td> <td><?php echo $rownominal["CPF"]?></td> <td><?php echo $rownominal["CNS"]?></td> <td><?php echo dataTela($rownominal["DATA_NASC"]); ?></td> <td><?php echo dataTela($rownominal["DATA_DISPENSACAO"]); ?></td> <td><?php echo $rownominal["CANETA_NPH"]?></td> <td><?php echo $rownominal["CANETA_REGULAR"]?></td> </tr> </table> <?php }else{ echo "Nenhum registro encontrado!"; }  
      Agradeço desde  já pela ajuda.
       
      Obrigado!
    • By Giovanird
      Estou quebrando a cabeça para fazer uma consulta em 2 colunas da mesma tabela.
      Preciso retornar a NOTA1 e NOTA2 consultando ambas colunas e listar sem repetir as notas vinculadas com cada série.

      TABELA ALUNOS
      COD |    CODSERIE  |  DATACADASTRO  |  NOTA1  |  NOTA2  
      1       |    2                  |  01/08/2021           |  5            |  3
      2       |    1                  |  11/08/2021           |  3            |  5
      3       |    2                  |  12/08/2021           |  5            |  3
      4       |    3                  |  15/08/2021           |  3            |  1
      5       |    2                  |  15/08/2021           |  5            |  3
      6       |    3                  |  18/08/2021           |  4            |  5
      7       |   2                   |  22/08/2021           |  2            |  3
      8       |   1                   |  12/08/2021           |  1            |  3
      9       |   2                   |  25/08/2021           |  5            |  6

      RETORNAR:
      SERIE 1
      Nota: 3
      Nota: 5
      Nota: 1
       
      SERIE 2
      Nota: 5
      Nota: 3
      Nota: 2
      Nota: 6
       
      SERIE 3
      Nota: 3
      Nota: 1
      Nota: 4
      Nota: 5
       
      Aqui tenho um foreach de outra tabela que devolve o codigo das séries e as notas para consulta foreach($rsserie as list($varserie,$varnota1,$varnota2)){ SELECT nota1, nota2 FROM alunos WHERE codserie like '$varserie' and (nota1 = '$varnota1' or nota1 = '$varnota2' or nota2 = '$varnota1' or nota2 = '$varnota2') Group by nota1, nota2 }  
    • By Kefatif
      Prezados, boa tarde.
       
      Utilizo um banco de dados Mysql + Programação PHP e HTML.
       
      Preciso que no filtro do sql ele não me traga o estoque do CNES "0000000", como eu poderia ta excluindo ele do filtro?
       
       
      $sqlestoque = "select A.ID_ESTOQUE, D.CNES, D.NOME_UNIDADE, B.COBERTURA, A.QTD, C.DATA_REGISTRO FROM lesao_rel_estoque_coberturas A INNER JOIN lesao_coberturas B ON A.ID_COBERTURA = B.ID_COBERTURA INNER JOIN lesao_estoque C ON A.ID_ESTOQUE = C.ID_ESTOQUE INNER JOIN unidades D ON C.CNES = D.CNES WHERE C.ID_ESTOQUE = (SELECT MAX(E.ID_ESTOQUE) FROM lesao_estoque E WHERE E.CNES = C.CNES) ORDER BY A.ID_ESTOQUE DESC";  
      Agradeço a ajuda desde já.
       
      Muito obrigado!
    • By lezão
      Bom dia, galera!
      Tudo bem com vcs?
       
      Tenho uma tabela Itens com os campos Descrição e nome do produto, quando eu coloco no select.
      Eu gostaria que me retorna-se, todos os nomes dos produtos e retornar apenas uma vez a Descrição.
       
      Select com ORDER BY
      "SELECT DISTINCT c.id, c.descricao, i.id_categoria, i.descricao_produto, i.id_item, i.nome_produto, i.imagem, i.preco, i.qntdade FROM tab_categoria AS c JOIN tab_itens AS i ON c.id = i.id_categoria WHERE c.id = i.id_categoria AND i.id_empresa = '$id_empresa' ORDER BY c.descricao" Select com GROUP BY,  até da certo, mas retorna apenas um produto.
      "SELECT DISTINCT c.id, c.descricao, i.id_categoria, i.descricao_produto, i.id_item, i.nome_produto, i.imagem, i.preco, i.qntdade FROM tab_categoria AS c JOIN tab_itens AS i ON c.id = i.id_categoria WHERE c.id = i.id_categoria AND i.id_empresa = '$id_empresa' GROUP BY c.descricao"  
      Veja como esta ficando do jeito que eu estou fazendo, com ORDER BY
      Select_com_ORDER_BY  
       
      E com o GROUP BY
      Select_com_GROUP_BY
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.