Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Atribuir Valor Stored Procedure


Pompeu

Pergunta

Como posso atribuir um valor a uma SP puxando esse valor de um SELECT ?

Segue SP:

DELIMITER $$

DROP PROCEDURE IF EXISTS `sp_faturamento_gerar` $$
CREATE DEFINER=`clubedec`@`%` PROCEDURE `sp_faturamento_gerar`(
   IN v_idfaturamento INTEGER,
   IN v_vencimento DATE,
   IN v_lancamento DATE,
   IN v_planoconta VARCHAR(35),
   IN v_ndocumento VARCHAR(5))
BEGIN
   DECLARE vs_id              INTEGER;
   DECLARE vs_tiposocio       INTEGER;
   DECLARE vs_ntitulo         VARCHAR(3);
   DECLARE vs_codigo          INTEGER;
   DECLARE vs_nome            VARCHAR(50);
   DECLARE vs_taxaid          INTEGER;
   DECLARE vs_valor           DOUBLE;

   DECLARE socio_eof INTEGER DEFAULT 0;

   DECLARE cur_socio CURSOR FOR
      SELECT id, tiposocio, ntitulo, codigo, nome, taxaid
      FROM socios
      ORDER BY id;

   DECLARE CONTINUE HANDLER FOR NOT FOUND SET socio_eof = 1;

   OPEN cur_socio;
   FETCH cur_socio INTO vs_id, vs_tiposocio, vs_ntitulo, vs_codigo, vs_nome, vs_taxaid;

   WHILE NOT socio_eof DO

      SELECT id, valor FROM taxas WHERE id = vs_taxaid AND vs_valor = valor; //QUERO PEGAR O VALOR DA TABELA TAXAS E JOGAR NA VARIAVEL vs_valor

      INSERT INTO contasreceber (codigo, idcliente, nome, ndoc, valor, lancamento, vencimento, planocontas, tiposocio, idfaturamento)
      VALUES (vs_codigo, vs_codigo, vs_nome, v_ndocumento, vs_valor, v_lancamento, v_vencimento, v_planoconta, vs_tiposocio, v_idfaturamento);

      FETCH cur_socio INTO vs_id, vs_tiposocio, vs_ntitulo, vs_codigo, vs_nome, vs_taxaid;

   END WHILE;

   CLOSE cur_socio;
END $$

DELIMITER;

Quero pegar o valor da tabela TAXAS e jogar na variavel vs_valor

Obrigado

Editado por Denis Courcy
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Oi, Pompeu!

Como posso atribuir um valor a uma SP puxando esse valor de um SELECT ?

...

Quero pegar o valor da tabela TAXAS e jogar na variavel vs_valor

Pode, sim. Desde que o select retorne apenas um valor.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá 'Denis' ... bom dia

Sim ... o select retorna apenas um valor, e como eu posso atribuir esse valor da select em uma variável

Ex.:

SELECT id, valor FROM tabela WHERE id = 1

v_valor = (como eu armazeno o valor do select nessa variável ?) Lembrando que a variável está dentro de uma SP

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0
Olá 'Denis' ... bom dia

Sim ... o select retorna apenas um valor, e como eu posso atribuir esse valor da select em uma variável

Ex.:

SELECT id, valor FROM tabela WHERE id = 1

v_valor = (como eu armazeno o valor do select nessa variável ?) Lembrando que a variável está dentro de uma SP

Obrigado

Fazendo exatamente como você colocou acima. Assim:

v_valor = (SELECT id, valor FROM tabela WHERE id = 1);

Link para o comentário
Compartilhar em outros sites

  • 0

'Denis' ... só mais uma dúvida

No exemplo do SELECT eu trago dois campos, o ID e o VALOR, eu queria armazenar somente o campo VALOR da consulta mas eu preciso do campo ID para fazer a condição na cláusula WHERE.

Você poderia me dar um exemplo de como ficaria ?

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

'Pompeu'

Se o id é só para a cláusula where ele não precisa ser colocado como campo a ser exibido no select.

Seria assim:

v_valor = (SELECT valor FROM tabela WHERE id = 1);

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado 'Denis' ...

Desculpe minha ignorancia, funcionou perfeitamente.

Estou estudando SQL e ainda apanhando um pouco com a linguagem, quando temos o conhecimento tudo se torna muito fácil.

Um grande Abraço e Obrigado

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...