GARANTIR DESCONTO

Fórum Duvida select case ou stored procedure #58613

30/07/2007

0

Qual seria a melhor maneira sobre este resultado.

Os dois funcionam, mais nao sei qual eh o melhor pra se usar.

Estou usando firebird 2.0

com um select simples usando um case
select LANCA_CHEQUE, EMITENTE, VALOR, NUMECHEQUE, BANCO, AGENCIA, DATADEPOSITO, OBS, DATAREPASSE,
DATADEPOSITADO, STATUS, ID_CLIENTES, ID_FORNECEDOR, DATADEVOLUCAO, MOTIVODEV, TIPO,
ID_PLANO_CONTAS, ID_CONTA, DATAENTRADA, tipolancamento,
CASE TIPOLANCAMENTO
  when ´C´ then ´CHEQUE´
  when ´D´ then ´DINHEIRO´
  else
      ´campo em branco ou valor incorreto´
  end as tipo_de_lancamento
from T_chequespre


Ou passanto por um SP
CREATE PROCEDURE SPCHEQUECD 
returns (
    lanca_cheque integer,
    dataentrada date,
    emitente varchar(40),
    valor double precision,
    numecheque varchar(15),
    banco varchar(10),
    agencia varchar(15),
    datadeposito date,
    obs varchar(40),
    datarepasse date,
    datadepositado date,
    status char(1),
    id_clientes integer,
    id_fornecedor integer,
    datadevolucao date,
    motivodev smallint,
    tipo char(1),
    id_plano_contas integer,
    id_conta integer,
    tipolancamento char(1),
    tipodolancamento varchar(100))
as
begin
for
    select LANCA_CHEQUE, EMITENTE, VALOR, NUMECHEQUE,
    BANCO, AGENCIA, DATADEPOSITO, OBS, DATAREPASSE,
    DATADEPOSITADO, STATUS, ID_CLIENTES, ID_FORNECEDOR,
    DATADEVOLUCAO, MOTIVODEV, TIPO,
    ID_PLANO_CONTAS, ID_CONTA, DATAENTRADA, tipolancamento
    from
    T_chequespre
    into :LANCA_CHEQUE, :EMITENTE, :VALOR, :NUMECHEQUE,
    :BANCO, :AGENCIA, :DATADEPOSITO, :OBS, :DATAREPASSE,
    :DATADEPOSITADO, :STATUS, :ID_CLIENTES, :ID_FORNECEDOR,
    :DATADEVOLUCAO, :MOTIVODEV, :TIPO,
    :ID_PLANO_CONTAS, :ID_CONTA, :DATAENTRADA, :tipolancamento
do
begin
    if (tipolancamento = ´C´) then
       tipodolancamento = ´Cheque´;
    else
       tipodolancamento = ´Dinheiro´;
    suspend;
 end
end



Adriano_servitec

Adriano_servitec

Responder

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

Aceitar