GARANTIR DESCONTO

Fórum Select com For e While #54305

19/12/2005

0

O negócio o seguinte, usaria duas tabelas, um com o nome do cliente e uma outra com os varios apelidos de um cliente.

Então pretendo criar um Store Procedure onde ele pegaria o nome do cliente e num outro campo juntaria todos os apelidos que estão em outra tabela separados por ; sem espaço

Como juntaria todos os apelidos da tabela apelidos em uma unica linha


CREATE PROCEDURE ST_CONCLI (
INOME VARCHAR (50),
ICPF VARCHAR (14))
RETURNS (
VCODIGO INTEGER,
VNOME VARCHAR (50),
VAPELIDOS (500))
AS




/*declare variable barra varchar(20);
declare variable nomeprodu varchar(40);*/


begin



for select c.cli_codigo, c.cli_nome, a.apelido
inner join APELIDOS on (C.CLI_CODIGO = A.CLI_CODIGO)

WHERE ((cli_nome like :Inome || ´¬´) AND (cnpj_cpf like :Icpf || ´¬´))

order by cli_nome

into :vcodigo, :vnome, :vpelidos do
suspend;

end


Emery

Emery

Responder

Posts

19/12/2005

Emerson Nascimento

CREATE PROCEDURE ST_CONCLI (
    INOME VARCHAR(50),
    ICPF VARCHAR(14))
RETURNS (
    VCODIGO INTEGER,
    VNOME VARCHAR(50),
    VAPELIDOS VARCHAR(500),
    VAPELIDO VARCHAR(50))
AS
begin 
  for select
        cli_codigo, cli_nome
      from
        clientes
      where (cli_nome like :Inome || ´¬´)
        and (cnpj_cpf like :Icpf || ´¬´)
      order by
        cli_nome
  into :vcodigo, :vnome do
  begin
    vapelidos = ´´;

    for select
          apelido
        from
          apelidos
        where cli_codigo = :vcodigo
    into :vapelido do
    begin
      if (vapelidos <> ´´) then
        vapelidos = :vapelidos || ´, ´;
      vapelidos = :vapelidos || :vapelido;
    end

    suspend; 
  end
end



Responder

Gostei + 0

19/12/2005

Emery

Valeu mesmo deu certinho


Obrigado


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar