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 Aureo Almeida
      Eu possuo em uma página em que existe um menu, com categorias inseridas a partir de um banco de dados, e na mesma página uma listagem de produtos.
      A função deste menu é enviar para a clausula where do SQL que lista os produtos parâmetros que permitam filtro dos produtos. Faço isso com a variável $_GET, da seguinte forma:
      $sub_id = $_GET['sct_id']; Isso funciona certinho, porém o problema é que quando a página é carregada, a não ser que seja feita uma opção no menu para selecionar os produtos, a listagem deles volta vazia e com o seguinte erro:
      array(0) { } Notice: Undefined index: sct_id in D:\XAMPP\htdocs\projeto\arq\cosm.php on line 76 Tentei desenvolver as seguinte condições que mudassem o SQL,  mas não consegui fazer dar certo:
      if(empty($sub_id = array(0))) $sql = "SELECT * FROM psd_produtos WHERE ctg_id = 1"; else { $sql = "SELECT * FROM psd_produtos WHERE ctg_id = 1 AND sct_id = '$sub_id'"; } Como fazer com que o SQL que orienta a consulta quando a página for carregada seja um, e quando passo parâmetro via GET seja outro?
    • By thunanchiu@hotmail,com
      Bom dia, gostaria dessa ajuda.
      Tenho uma tabela de "INSCRIÇÃO" onde a mesma possui 2 chaves estrangeiras (CAND_SQ e CANDPL_SQ). Ambas as chaves estrangeiras possuem um campo CPF.
      Gostaria de saber como eu trago os cpfs que são iguais dentro da inscrição.
      Ou seja, atualmente tenho uma INSCRIÇÃO onde pode ser feita de duas maneiras diferentes. Inscrição Regular e Inscrição Atraso. Quando eu for fazer a Inscrição Atraso, caso eu já tenha feito a Inscrição Regular não poderei fazer a Inscrição Atraso.
    • By asacap1000
      Salve galera, preciso de uma ajuda aqui....eu preciso trazer algumas fotos de usuarios que estão gravados em outro servidor e mostrar em uma página.
       
      O que estou usando inicialmente apenas para carregar as fotos e depois vou personalizar com outras funções. Mas o basico é esse:
       
      <? $diretorio = "//SRVCAMARAFRIA/Sistema de Acesso/AcessoNet/fotos/"; // esta linha não precisas é só um exemplo do conteudo que a variável vai ter // selecionar só .jpg $imagens = glob($diretorio."*.jpg"); // fazer echo de cada imagem foreach($imagens as $imagem){ echo '<a href="'.$imagem.'"><img src="'.$imagem.'" /></a>'; } ?> Ele busca as imagens mas não as mostra segue print do resultado:
       

       
      Se eu posicionar o cursor em cima de uma delas ela aparece no rodapé o caminho e o nome da foto
       

       
       
      O link para abrir ela eu nem preciso apenas para mostrar na tela, poderiam me ajudar?
       
      Desde já Agradeço.
    • By TaisStream
      Como configurar essa query com inner join, no arquivo .xml?
      Me ajudem pf eu comecei mas estou perdida,  pesquisei já vi algo de /root... mas minha query esta diferente, nao sei se falta algo
       
       
      QUERY ATUAL:
      set mapreduce.job.queuename=low_relatorios; 
      set mapreduce.job.max.split.locations=100;
      SELECT a.num_msisdn,
             a.max_date
      FROM fact.dw_f_rcrg_gems_rate_subsc t
      INNER JOIN
        (SELECT num_msisdn,
                MAX(dat_operacao) AS max_date
         FROM fact.dw_f_rcrg_gems_rate_subsc
         WHERE (ref_date)>=$startdate
           AND ref_date<=$finaldate
           AND ide_plano_tarifario_atual IN (48,
                                             50,
                                             51,
                                             52,
                                             53,
                                             59,
                                             61,
                                             62,
                                             63,
                                             67,
                                             73,
                                             74)
         GROUP BY num_msisdn)a ON a.num_msisdn = t.num_msisdn
      AND a.max_date = t.dat_operacao
      WHERE ref_date>=$startdate
      AND ref_date<=$finaldate;
       
      QUERY CONFIGURANDO NO XML: 
       
          <value><![CDATA[[
      INSERT
              overwrite TABLE fact.dw_f_rcrg_gems_rate_subsc t 
              (
                      a.num_msisdn,
                      a.max_date
              )
      (SELECT
          INNER JOIN
      SELECT      
              MAX(dat_operacao) AS max_date;
      FROM fact.dw_f_rcrg_gems_rate_subsc) a
         WHERE (ref_date)>='$startdate'
           AND ref_date<=$'finaldate'
           AND ide_plano_tarifario_atual IN (48,
                                             50,
                                             51,
                                             52,
                                             53,
                                             59,
                                             61,
                                             62,
                                             63,
                                             67,
                                             73,
                                             74)
         GROUP BY num_msisdn)a ON a.num_msisdn = t.num_msisdn
                  AND a.max_date = t.dat_operacao
      WHERE ref_date>='$startdate'
      AND ref_date<=$finaldate;]]>
      </value>
       
       
      Poderiam me ajudar por favor, sou estagiario na area e ainda estou aprendendo.
    • By @MF
      Boa tarde.
       
      Tenho um banco de dados que possui datas criadas no tipo numeric e não estou conseguindo convertê-las para tipo data.
       
      Utilizei
      SELECT var_string_1, CONVERT(date,CONVERT(VARCHAR,var_data_1),103) AS data_1, CONVERT(date,CONVERT(VARCHAR,var_data_2),103) AS data_2, CONVERT(date,CONVERT(VARCHAR,var_data_3),103) AS data_3, CONVERT(date,CONVERT(VARCHAR,var_data_4),103) AS data_4 FROM minha_tabela
       
      O erro que aparece é Conversion failed when converting date and/or time from character string.
       
      Alguém que possa ajudar por favor?
×

Important Information

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