PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Onde esta errado? #39560

19/10/2003

0

Estou querendo saber pq o codigo abaixo que acabei de fazer para resolver meus problemas retornam respostas duplicadas? Desculpe ser leigo... AGradeço desde ja a ajuda...

CREATE PROCEDURE ´PROCTROCAREALIZAR´
(
DATAINICIO DATE,
DATAFINAL DATE,
NOMEBAIRRO VARCHAR(30)
)
RETURNS
(
COD_CLIENTE INTEGER,
NOME VARCHAR(50),
NOME_GRUPO VARCHAR(40),
TEL_RES CHAR(10),
TEL_COM CHAR(13)
)
AS
BEGIN EXIT; END ^


ALTER PROCEDURE ´PROCTROCAREALIZAR´
(
DATAINICIO DATE,
DATAFINAL DATE,
NOMEBAIRRO VARCHAR(30)
)
RETURNS
(
COD_CLIENTE INTEGER,
NOME VARCHAR(50),
NOME_GRUPO VARCHAR(40),
TEL_RES CHAR(10),
TEL_COM CHAR(13)
)
AS

DECLARE VARIABLE CONT INTEGER;
DECLARE VARIABLE CODPROD INTEGER;
begin
For select p.cod_produto from produto p
INNER JOIN grupo_produto g on(p.cod_grupo=g.cod_grupo)
where g.tipo_produto=´P´
into :codprod do
begin
select count(*)as cont from servico_executado s
INNER JOIN itens_servico i ON(s.num_serv_exec=i.num_serv_exec)
where i.cod_produto=:codProd
into :cont;

if (:cont>0) then
begin
select servico_executado.cod_cliente,cliente.nome,grupo_produto.nome_grupo,pessoa_fisica.tel_res,pessoa_juridica.tel_com
from cliente
LEFT join pessoa_fisica on (pessoa_fisica.cod_cliente = cliente.cod_cliente)
LEFT join pessoa_juridica on (pessoa_juridica.cod_cliente = cliente.cod_cliente)
INNER JOIN servico_executado on (servico_executado.cod_cliente=cliente.cod_cliente)
INNER JOIN itens_servico on (itens_servico.num_serv_exec=servico_executado.num_serv_exec)
INNER JOIN produto on (produto.cod_produto=itens_servico.cod_produto)
INNER JOIN grupo_produto on (grupo_produto.cod_grupo=produto.cod_grupo)
where (cliente.Bairro = :NomeBairro) AND (itens_servico.cod_produto= :codprod) and
(servico_executado.Dt_Emissao BETWEEN :DataInicio AND :DataFinal)
into :cod_cliente,:nome,:nome_grupo,:tel_res,:tel_com;
end

if (:Cont=0) then
begin
select cliente.cod_cliente,cliente.nome,grupo_produto.nome_grupo,pessoa_fisica.tel_res,pessoa_juridica.tel_com
from cliente
LEFT join pessoa_fisica on (pessoa_fisica.cod_cliente = cliente.cod_cliente)
LEFT join pessoa_juridica on (pessoa_juridica.cod_cliente = cliente.cod_cliente)
INNER JOIN sac on (sac.cod_cliente=cliente.cod_cliente)
INNER join sac_produto on(sac_produto.num_sac = sac.num_sac)
INNER JOIN produto on (produto.cod_produto=sac_produto.cod_produto)
INNER JOIN grupo_produto on (grupo_produto.cod_grupo=produto.cod_grupo)
where (cliente.Bairro = :NomeBairro) AND (sac_produto.cod_Produto=:codProd) and
(sac_produto.Dt_pref_ver BETWEEN :DataInicio AND :DataFinal)
into :cod_cliente,:nome,:nome_grupo,:tel_res,:tel_com;

end
suspend;
end
end
^

T+


Naonob

Naonob

Responder

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

Aceitar