Ir para conteúdo
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)  

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por PlatBubbles
      Ola, estou tendo dificuldade para fazer uma consulta seletiva usando duas tabelas, provavelmente estou errando a sintaxe da busca, agradeço caso alguem possa me passar a forma correta de fazer a busca.
       
      $sqluser = "SELECT aquestion_id, user_id FROM respostas WHERE user_id like '$logado' UNION SELECT * pergunta, question_id FROM questions WHERE question_id!=aquestion_id ORDER BY RAND() LIMIT 1"; Explicando
      Na tabela respostas preciso dos dados aquestion_id e user_id apenas do usuário Logado.
      Da tabela questions preciso da pergunta e da question_id que deve ser gerada de forma aleatória mas apenas com os Ids que não estejam  listados em aquestion_id.
      Na verdade as duas tabelas tinham o campo question_id porem estava confuso e por isso mudei o campo da primeira tabela para aquestion_id.
       
      Agradeço qualquer ajuda, e também pelo tempo dos que leram mesmo se não puderam ajudar.
      PlatBubbles
    • Por rogfranz
      Olá pessoal! Então, estou desenvolvendo um projeto que pode tomar grandes proporções, e estou com uma dúvida que está me tirando o sono!

      Digamos que trata-se de um sistema de pedidos só pra usar como exemplo.

      Vários usuários vão poder se cadastrar no sistema e criar seus pedidos.

      Teremos então as tabelas

      usuarios
      pedidos
      pedido_itens
       
       
      minha dúvida está na seguinte questão.
      Uso bancos de dados separados para cada cliente ?  
      ou
      Uma tabela por exemplo dos pedidos vinculo o id do usuário para todos usuários do sistema ?

      POR FAVOR! Me Deem a opinião do que vocês fariam! e Por que!

      Trazendo para a realidade do meu projeto uma estimativa de volume de dados que eu imagino.
      Levando em conta que um usuário pode cadastrar a média de 10 "pedidos" no mês com aproximadamente 500 ítens

      Agradeço muito a contribuição de vocês!
    • Por LuanMartinsTI
      Tenho o seguinte problema, eu preciso dar um select em duas tabelas, ou ter dois selects tanto faz, eu fiz com inner join e com union all mas nao consigo ter o resultado que eu desejo
      O problema é o seguinte> Pra saber quantos usuarios eu tenho em cada grupo eu preciso dar um select na membros grupo com o id do grupo, mas eu preciso mostrar apenas os 5 primeiros grupos com mais gente, eu nao tenho na tabela falando grupo 1 tem 50 membros, eu tenho 50 linhas com grupo 1 e id do usuario, como eu transformo isso no que eu quero? a unica forma q eu pensei é criar um campo novo em grupos e colocar la o resultado de rowCount, mas gostaria de saber se é possivel fazer sem, eu ja consigo mostrar quantos usuarios cada grupo tem, eu nao consigo mostrar é em ordem e nao é so dar o asc o problema é na logica provavelmente, mas se for possivel resolver isso com uma unica query ficarei grato
      tabela 1
      grupos( id nome dono created stat ) tabela 2
      membros_grupo( id grupo_id user_id )  
      PHP
      public function ultimosGrupos($limite){ try { $query = "SELECT * FROM groups ORDER BY id ASC LIMIT :limite"; $this->Select = $this->Conn->prepare($query); $this->Select->bindParam(':limite' , $limite, PDO::PARAM_INT); $this->Select->execute(); if($this->Select->rowCount() > 0){ return $this->Select->fetchAll(PDO::FETCH_ASSOC); }else{ return FALSE; } } catch (PDOException $exc) { exibeMensagens("Erro ao consultar. {$exc->getMessage()}", WS_ERROR); } } public function users_por_grupo($id){ try { $query = "SELECT * FROM group_memberships WHERE group_id = :id"; $this->Select = $this->Conn->prepare($query); $this->Select->bindParam(':id' , $id, PDO::PARAM_INT); $this->Select->execute(); return $this->Select->rowCount(); } catch (PDOException $exc) { exibeMensagens("Erro ao consultar. {$exc->getMessage()}", WS_ERROR); } }  
    • Por Fabiana Gomes
      Pessoal, boa noite
       
      Preciso de um help!!
       
      Tenho a tabela ENDERECO e na coluna LOUGRADOURO (40) preciso diminuir alguns endereços para 30 caracteres.
      Basicamente preciso cortar a partir da casa 30.
       
      Alguem pode me ajudar?
    • Por Lucast
      Boa tarde galera,
       
      Estou tentando fazer a soma de duas colunas no SQL e queria que ela me retornasse o valor separado em uma coluna a parte, podem me ajudar?
       
      Isso é o que estou fazendo
       
      SELECT MONTH(workOrderDate) AS MES, (SUM(CASE WHEN WorkType = '02' AND workOrderDescription = 'preventiva' THEN 1.0 ELSE 0 END)) AS preventiva, (SUM(CASE WHEN workOrderDescription = 'CORRETIVA' THEN 1 ELSE 0 END)) AS corretivas FROM WorkOrder WHERE YEAR(workOrderDate) = 2018 AND lastUpdateData IS NOT NULL GROUP BY MONTH(workOrderDate);  
      Esse resultado me retorna esses valores:
       
      https://imgur.com/5XqbmFX
       
      Preciso que ele me retorne uma coluna ao lado informando a soma de ambas as colunas.
       
      Alguém consegue me ajudar?
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.