Select com For e While
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
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
Curtidas 0
Respostas
Emerson Nascimento
19/12/2005
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
GOSTEI 0
Emery
19/12/2005
Valeu mesmo deu certinho
Obrigado
Obrigado
GOSTEI 0