Jump to content
nicolasbessa

Validar valor para condição dentro de um select

Recommended Posts

Boa tarde!

 

Como aplicar a regra abaixo em um select?


Regra Join
Quando o campo substr(x, 1,1)  ='1'
montar a chave de pesquisa:
y = '8' AND y1 =  'L'||lpad( x1, 2)) 

Quando o campo substrt(x, 1,1) for igual ='A'
montar a chave de pesquisa:
y = '8' AND y1 =  'M'||lpad( x1, 2)) 

 

obrigado!

Share this post


Link to post
Share on other sites

Where

(
 (substr(x, 1,1)  ='1'
  and
  (y = '8' AND y1 =  'L'||lpad( x1, 2)) )
OR
  (substrt(x, 1,1)  ='A'
   and
  (y = '8' AND y1 =  'M'||lpad( x1, 2))  )
)  

 

 

Isto deve ficar lento ...

Share this post


Link to post
Share on other sites

Motta, primeiramente muito obrigado pelo retorno, porém eu já havia aplicado dessa forma e não retorna dados. O join esta correto, pois eu removo essa condição a query retorna registros normalmente.

 

Query original:

 

select typeinsjson(a.or_num_docto, json_arrayagg(json_object('documento' value a.or_num_docto
         , 'nomeRequerido'       value ACNANOME
         , 'numeroProcesso'      value ACNAPROC
         , 'numeroVaraCivel'     value ACNAVARA
         , 'descricaoForo'       value ACNAFORO
         , 'uf'                  value ACNAUFED
         , 'tipoAcaoCivel'       value ACNATPAC
         , 'dataOcorrencia'      value ACNADTOC
         , 'dataCancelamento'    value ACNADTCN 
         , 'dataRegistro'        value ACNADTRG
         , 'valorCausa'          value ACNAVALO 
         , 'nomeAutor'           value ACNAAUTO
         , 'doctoAutor'          value ACNAADOC 
         , 'condicao'            value ACNACOND
         , 'dataRegistroB'       value ACNADTRB
         , 'controleAtualizacao' value ACNACATU
         , 'descricaoAcao'       value t.TABGDESC
         , 'codigoMunicipio'     value i.IBGECMUN 
         , 'codigoUF'            value i.IBGECUFE)returning clob))
      from as_acna a,
           as_tabg t,
           as_ibge i
     where a.acnaforo = i.ibgenmun
       and a.acnaufed = i.ibgemufe
       and ( (substr(a.acnakdoc, 1,1)  ='1' and (t.tabgktip = '19' AND t.tabgkcod =  'J'||lpad( a.acnatpac, 2)) )
        OR (upper(substr(a.acnakdoc, 1,1))  ='A'and (t.tabgktip = '19' AND upper(t.tabgkcod) = 'F'||lpad(a.acnatpac, 2))) )
       and a.acnatpac not in (9,10,11,20,30,31,32,33,34,35,37,75,76)                              
       and exists (select *
                              from as_acna b
                           where a.or_num_docto = b.or_num_docto
                              and b.or_flg_sincronismo = 'N')
  group by a.or_num_docto;

 

 

OBRIGADO!!!

Share this post


Link to post
Share on other sites

Só fazendo o "join" na mão , 

faça o select sem a tabela as_tabg e

faça select dela tentando localizar os valores 

 

t.tabgkcod teria de ter valores como "J 1"  se a.acnatpac for "1" por exemplo,

este "J" e "F" é física e jurídica , não ?

não teria uma forma melhor ? Este valor não está em outra tabela

 

Share this post


Link to post
Share on other sites

select sem a tabela as_tabg retorna os dados

 

Acredito q seja fisica e juridica, não conheço a origem, estou "simulando" a origem, criando massa de dados na mão para acelerar o desenvolvimento

 

procuro opções, esgotei aqui rsrs

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 Matheus_Moura
      Boa tarde.
      Estou fazendo uma aplicação PHP em um PC Linux com Lubuntu como SO, para conexão com um banco de dados ORACLE 11g. Porém quando utilizo a função oci_connect ou qualquer outra função para oracle é retornado uma mensagem informando que estão indefenidas.
      Estou utilizando o XAMPP como servidor e fiz a configuração no caminho opt/lampp/etc/php.ini retirando o ; tanto no php_oci8.dll como também na php_oracle.dll, porém não obtive sucesso. Coloquei dentro da pasta opt também o instantclient já descompactado e utilizei o PECL para tentar ativar as OCI, porém mesmo assim ainda não consegui sucesso. Alguém teria alguma outra sugestão ?
       
      Att,
      Matheus Moura
    • By 1stVieira
      Olá a todos! Estou com uma dúvida em relação a realizar um cadastro no banco de dados (SQL) a partir de um formulário de um projeto.
       
      Possuo duas tabelas, Categoria e Itens, na qual a tabela Itens possui uma FOREIGN KEY com a tabela Categorias.
       
      Na página de Categorias consigo realizar os cadastro das mesmas sem problemas e elas estão sendo aplicadas em um SELECT na página de Cadastro dos Itens. O problema está sendo cadastrar os Itens no Banco de Dados. Estou utilizando PHP Orientado à Objetos
       
      Página de Adição de Pedidos
      <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Adição de Item</title> </head> <body> <div> <a href="modificarCardapio.php" class="link_home"><i class="fa fa-home"></i></a> </div> <div> <div> <h1>Adicionar Itens ao Cardápio</h1> </div> <div> <form action="#" method="POST"> <label>Categoria:</label> <select name="selecionarcat"> <option selected>Selecione a Categoria</option> <?php require_once"../models/conexao.class.php"; require_once"../models/categoriaDAO.class.php"; $catDAO = new categoriaDAO(); $ret = $catDAO->buscarTodasCategorias(); if(count($ret) > 0){ foreach ($ret as $dado){ echo "<option value='".$dado->idcategoria."'>".$dado->descritivo."</option>"; } } ?> </select> <br><br> <a href="addcategoria.php"><input type="button" value="Adicionar nova Categoria"></a> <p> <label>Nome do Item: </label> <input type="text" name="nomeproduto"> </p> <p> <label>Descrição: </label> <input type="text" name="descricao"> </p> <p> <label>Preço: </label> <input type="text" name="preco"> </p> <br> <input type="submit" value="Adicionar"> </form> </div> </div> </body> </html> <?php if($_POST){ require_once "../models/conexao.class.php"; require_once "../models/item.class.php"; require_once "../models/itemDAO.class.php"; $item = new item(null, $_POST["nomeproduto"], $_POST["descricao"], null, $_POST["preco"]); $itemDAO = new itemDAO(); $itemDAO->adicionar($item); header("Location:modificarCardapio.php"); } ?> ItemDAO.php
      <?php class itemDAO extends conexao{ function __construct(){ parent:: __construct(); } function adicionar($item){ $sql="INSERT INTO itens (nomeprod, descricao, preco, id_categoria) VALUES(?, ?, ?, ?)"; try{ $stm = $this->db->prepare($sql); $stm->bindValue(1, $item->getNomeproduto()); $stm->bindValue(2, $item->getDescricao()); $stm->bindValue(3, $item->getPreco()); $stm->bindValue(4, $item->getCategoria()); $stm->execute(); $this->db = null; } catch(Exception $e){ die($e->getMessage()); } } ?> Item.class.php
      <?php class item{ private $iditem; private $nomeproduto; private $descricao; private $categoria; private $preco; function __construct($iditem, $nomeproduto, $descricao, $categoria, $preco){ $this->iditem=$iditem; $this->nomeproduto=$nomeproduto; $this->descricao=$descricao; $this->categoria=$categoria; $this->preco=$preco; } function getIditem(){ return $this->iditem; } function getNomeproduto(){ return $this->nomeproduto; } function getDescricao(){ return $this->descricao; } function getCategoria(){ return $this->categoria; } function getPreco(){ return $this->preco; } function setIditem($iditem){ $this->iditem=$iditem; } function setNomeproduto($nomeproduto){ $this->nomeproduto=$nomeproduto; } function setDescricao($descricao){ $this->descricao=$descricao; } function setCategoria($categoria){ $this->categoria=$categoria; } function setPreco($preco){ $this->preco=$preco; } } ?>  
    • By guilherme_soi
      Ao acessar o meu aplicativo recebo a seguinte mensagem: 'the dbname and launch parameters must be specified on first run' como resolver?
       
      Ao acessar o meu aplicativo recebo a seguinte mensagem: 'the dbname and launch parameters must be specified on first run' como resolver? Existe algo que possa ser feito?
    • By RafaGomes
      Boa tarde, seria possível realizar uma consulta da seguinte forma:
      SELECT * FROM CARGA WHERE (CASE WHEN :VARIAVEL = 2 THEN ('2', '7') WHEN :VARIAVEL = 3 THEN ('3', '9', '10') WHEN :VARIAVEL = 4 THEN '4' WHEN :VARIAVEL = 5 THEN '5' WHEN :VARIAVEL = 6 THEN '6' END) IN AD_DIAENTREGA;  
    • By asacap1000
      Galera estou com uma dúvida, tenho a parte de envio de dados para em Post, com encode json e curl. Já pesquisei em todos os lugares e não encontrei nada pra clarear as idéias.
       
      a parte final é essa do envio (cliente)
      header("Content-Type: ".$mediaType); $headers = array(); $headers[] = "Accept: ".$mediaType; $headers[] = "Accept-Charset: ".$charSet; $headers[] = "Accept-Encoding: ".$mediaType; $headers[] = "Content-Type: ".$mediaType.";charset=".$charSet; $headers[] = "Authorization: Basic ".$AuthorizationHeaderBase64; $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,"contatos=$contatos"); #campos que serão enviados curl_setopt($ch, CURLOPT_USERPWD, $AuthorizationHeaderBase64); curl_setopt($ch, CURLOPT_HEADER, $headers); curl_setopt($ch, CURLINFO_HTTP_CODE, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);#ativa se for ter retorno do chamada $result = curl_exec($ch); $result2 = json_decode($result,true); curl_close($ch); if($result2 === false) { $err = 'Curl error: ' . curl_error($ch); $result2 = $err; echo "This is text".$err; } var_dump ($result2);  
      Preciso de ajuda para entender como deve ser feito a página que será chamada, no caso lado servidor.
       
      Como pode ver tenho um header configurado e será enviado com chave de autorização agora como isso é feito do lado servidor??
       
      Se alguém puder me ajudar, preciso entregar este webservice sexta feira 18/10. Todos os dados recebidos serão salvos no BD Oracle.
       
       
×

Important Information

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