Jump to content
tanaka_

Retornar várias linhar da Procedore

Recommended Posts

Boa tarde,

Preciso de auxilio para criar uma consulta sql para retornar várias linhas dinamicamente.

 

Tenho a seguinte procedore "st_ConsultaCep" no banco que valida o CEP .

 

declare @p3 int
set @p3=0
declare @p4 varchar(255)
set @p4=''
declare @p5 varchar(80)
set @p5=''
declare @p6 varchar(30)
set @p6=''
declare @p7 int
set @p7=1
declare @p8 varchar(50)
set @p8=''
declare @p9 varchar(4)
set @p9=''
declare @p10 varchar(2)
set @p10=''


exec st_ConsultaCep '78090785',1,@p3 output,@p4 output,@p5 output,@p6 output,@p7 output,@p8 output,@p9 output,@p10 output
select @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10

 

 

Que retorna a seguinte informação:

0        RUA  UM    COHAB SÃO GONÇALO    1    CUIABA        MT

 

Tentei utilizar o cross apply, porém sem sucesso.

 

Alguma sugestão para a consulta sql

 

 

Seria algo neste sentido que eu preciso...

 


select * from CONGR001 A
INNER JOIN CONVE002 B ON A.ID_Grupo=B.ID_Cota
INNER JOIN CORCC026 C ON C.ID_Endereco=B.ID_Endereco
CROSS APPLY st_ConsultaCep(C.CEP,1)  

Share this post


Link to post
Share on other sites

ao inves de procedure, crie uma funcao de retorno tipo table,,, ai você consegue utilizar a logica que precisa,,,, 

  • +1 1

Share this post


Link to post
Share on other sites
1 hora atrás, A.Jr disse:

ao inves de procedure, crie uma funcao de retorno tipo table,,, ai você consegue utilizar a logica que precisa,,,, 

Vou ter que pesquisar...
Não tenho conhecimento para efetuar isso. 

Consigo abrir a [st_ConsultaCep], porém, não consigo através da estrutura atual criar essa função.

 

De qualquer forma, obrigado.

Share this post


Link to post
Share on other sites

Como que esta montado sua estrutura? pq dependendo de como esta montado, você pode utiliziar um view,,, 

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 lucascientista
      Boa noite, galera é o seguinte eu estou montando um script que pesquisa no banco de dados e mostrar os resultados em uma página php, bem aí que está o problema eu pesquisei alguns sistemas de paginação e de pesquisa e acabei montando meu script, no meu script a pesquisa aparece na primeira página mas quando passo para a página adiante não me é mostrado resultado nenhum já verifiquei tudo e não consigo encontrar o erro, será que alguém pode me ajudar?
       
      <?php #Incluindo a conexão no banco de dados require_once '../dao/conexao/Conexao.php'; $conexao = Conexao::getInstance(); /***********************************************/ #Aqui começa a parte a paginação e pesquisa /**********************************************/ #Limitando o número máximo de resultados que serão mostrados na tela $maximo = 1; #Armazenando o valor da página atual $pagina = isset($_GET["pagina"])? ($_GET["pagina"]): '1'; #Subtraindo 1, porque os registro começam do zero como em um array $inicio = $pagina - 1; #Multiplicamos a quantidade de registros da pagina pelo valor da pagina atual $inicio = $maximo * $inicio; #Agora chega a parte em que fazemos o SELECT para contar os resultados $sql = "SELECT * FROM centroautomotivo"; $stmt = $conexao->prepare($sql); $stmt->execute(); $contagem = $stmt->fetchAll(PDO::FETCH_ASSOC); $total = 0; if(count($contagem)){ foreach ($contagem as $linhas) { #Armazenando o total de registros da tabela para fazer a paginação $total = count($contagem); } } /******************************************************************* * Aqui vai começar a parte da pesquisa, tornando o script em um só ********************************************************************/ #Recebe o termo da pesquisa se existir $termo = (isset($_GET["termo"])) ? ($_GET["termo"]) : ''; #Executa uma pesquisa com o termo pesquisado como parametro - Este SELECT irá servir também para a paginação if(empty($termo)){ //Nada aqui } else{ $sql = "SELECT * FROM centroautomotivo WHERE nomefantasia LIKE :nomefantasia or email LIKE :email ORDER BY idCentro LIMIT $inicio,$maximo"; $stm = $conexao->prepare($sql); $stm->bindValue(':nomefantasia', '%'.$termo.'%'); $stm->bindValue(':email', '%'.$termo.'%'); $stm->execute(); $autocenters = $stm->fetchAll(PDO::FETCH_ASSOC); } <?php require_once '../includes/header.php'; require_once '../controller/paginacaoPesquisaCentro.php'; ?> <div class="container mb-5"> <h1 class="text text-center">Centros Automotivos</h1> <p class="text text-center">Encontre o centro automotivo que mais se encaixa com você</p> <!--Formulário de pesquisa com paginação--> <form method="GET" action=""> <div class="d-flex flex-column bd-highlight mb-3"> <div class="p-2 bd-highlight"><img src="../img/Logotipo.png" class=" img-fluid rounded mx-auto d-block"></div> <div class="p-2 bd-highlight d-flex justify-content-center" style="margin-top: -10px;"><input type="text" name="termo" class="form-control" style=" width: 60%;" placeholder="Pesquise pelo Centro Automotivo!"/></div> <div class="p-2 bd-highlight d-flex justify-content-center"><button type="submit" class="btn btn-outline-primary"><i class="fas fa-search"></i>&nbsp;Pesquisar</button></div> </div> </form> <!--Fim do formuláio de pesquisa--> <!--Início dos resultados da pesquisa--> <?php if(!empty($autocenters)){?> <?php foreach ($autocenters as $autocenter) { ?> <center> <div class="card mb-3" style="max-width: 540px;"> <div class="row no-gutters"> <div class="col-md-4"> <img src="../controller<?php empty($autocenter["foto"])? 'images/pic.png' : $autocenter["foto"] ?>" class="card-img img-fluid" width="150px" height="150px"> </div> <div class="col-md-8"> <div class="card-body"> <p class="card-text text-justify"><?php $autocenter["nomefantasia"]?></p> <p class="card-text text-justify"><small class="text-muted"><?=$autocenter["email"]?></small></p> </div> </div> </div> </div> </center> <?php }//Fechamento do foreach?> <div id="alignpaginacao"> <?php //determina de quantos em quantos links serão adicionados e removidos $max_links = 6; //dados para os botões $previous = $pagina - 1; $next = $pagina + 1; //usa uma funcção "ceil" para arrendondar o numero pra cima, ex 1,01 será 2 $pgs = ceil($total / $maximo); //se a tabela não for vazia, adiciona os botões if($pgs > 1 ){ echo "<br/>"; //botao anterior if($previous > 0){ echo "<div id='botaoanterior'><a href=".$_SERVER['PHP_SELF']."?termo={$termo}?pagina=$previous><input type='submit' name='bt-enviar' id='bt-enviar' value='Anterior' class='button' /></a></div>"; } else{ echo "<div id='botaoanteriorDis'><a href=".$_SERVER['PHP_SELF']."?pagina=$previous><input type='submit' name='bt-enviar' id='bt-enviar' value='Anterior' class='button' disabled='disabled'/></a></div>"; } echo "<div id='numpaginacao'>"; for($i=$pagina-$max_links; $i <= $pgs-1; $i++) { if ($i <= 0){ //enquanto for negativo, não faz nada }else{ //senão adiciona os links para outra pagina if($i != $pagina){ if($i == $pgs){ //se for o final da pagina, coloca tres pontinhos echo "<a href=".$_SERVER['PHP_SELF']."?pagina=".($i).">$i</a> ..."; }else{ echo "<a href=".$_SERVER['PHP_SELF']."?pagina=".($i).">$i</a>"; } } else{ if($i == $pgs){ //se for o final da pagina, coloca tres pontinhos echo "<span class='current'> ".$i."</span> ..."; }else{ echo "<span class='current'> ".$i."</span>"; } } } } echo "</div>"; //botao proximo if($next <= $pgs){ echo " <div id='botaoprox'><a href=".$_SERVER['PHP_SELF']."?termo={$termo}?pagina=$next><input type='submit' name='bt-enviar' id='bt-enviar' value='Proxima' class='button'/></a></div>"; }else{ echo " <div id='botaoproxDis'><a href=".$_SERVER['PHP_SELF']."?pagina=$next><input type='submit' name='bt-enviar' id='bt-enviar' value='Proxima' class='button' disabled='disabled'/></a></div>"; } } ?> </div> <?php }//Fechamento do if?> <!--Fim dos resultados da pesquisa--> <!--Início da paginação--> <!--Fim da paginação--> </div> <?php require_once '../includes/footer.php'; ?>  
      Bem aí está meu código, fico muito agradecido se puderem me ajudar.
    • By luisfeliperm2
      PHP Exibe mensagem Warning mesmo tratando exceção, como impedir isto ? Na mensagem é exibida o usuário e senha do meu banco de dados
      Observe: Não quero desativar as mensagens de Warning na configuração do PHP. Quero apenas impedir que não seja mostrado essa mensagem na função de conexão com a DB


    • By Ana Miguel
      Quero selecionar o quantidade de Num_CP conforme a data atual, por isso estou usando a função GETDATE(), porém o meu SQL aponta o seguinte erro:
      Meu Código:
      BEGIN SET NOCOUNT ON; DECLARE @QUANTIDADE_CPS INT; DECLARE @D0 DATE; SET @D0 = (SELECT DATEADD(day, 0, GETDATE()) FROM VW_Vendas); SET @QUANTIDADE_CPS = (SELECT COUNT(NUM_CP) FROM VW_Vendas); SELECT CONVERT(VARCHAR,(@D0)) AS DATA_ATUAL, CONVERT(VARCHAR,(@QUANTIDADE_CPS)) AS QUANTIDADE_CPS FROM VW_Vendas VW0 WHERE VW0.DT_CRIACAO = @D0    SELECT 'RESULTADO', (     SELECT @D0 AS DATA_ATUAL, @QUANTIDADE_CPS AS QUANTIDADE_CPS FROM VW_Vendas VW0 WHERE VW0.SITUACAO_RECADO IS NOT NULL     AND VW0.SITUACAO_RECADO LIKE '%Aguardando Aprovação Cliente%' AND VW0.DT_CRIACAO = GETDATE() ) 'DATAS DIA ZERO' END GO
    • By skti
      Olá,
      preciso fazer uma query que retorne os valores os agrupando de 5 em 5 minutos. Exemplo: valor1 = 'XXX' hora = '11:13', valor2 = 'XXX' hora = '11:17', valor3 = 'XXX' hora = '11:30', valor4 = 'XXX' hora = '11:36' - Os valores valor1 e valor2 devem ficar agrupados juntos (pois estão dentro do intervalo de 5 minutos), já o valor3 e valor4, separados.
      Qualquer dúvida, só perguntar. Obrigado pela atenção.
       
      No momento minha query agrupa os valores de hora em hora:
      $sql_serv = "SELECT left(hora_cri, 2) as hora,campanha,COUNT(*) as qtd FROM ".$tabelaOperacao." WHERE data_cri = '" . $data . "' AND campanha IN ('".$campanha."') GROUP BY left(hora_cri, 2), campanha";
    • By WilsoncCP
      Já tentei muito mas não sei como resolver, se alguém me der uma luz de como resolver ficarei muito agradecido.

×

Important Information

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