Stored Procedure - Campo Calculado
Oi Pessoal, se for possível me ajudar eu agradeço.
Estou querendo fazer uma Stored Procedure que me retorne os dados de uma tabela. Até aí tudo bem, só que eu preciso calcular um campo conforme uma situação de outro campo Por Exemplo:
Tabela Cliente:
Campos - Cli_ID Integer
Cli_Razao VarChar(60)
Cli_Status Char(1)
O Cli_Status poder ter A=Ativo, I=Inativo, B=Bloqueado
Eu precisaria que a Stored Procedure me retornasse:
Cli_id Cli_Razao Situacao
1 Cliente 1 Ativo
2 Cliente 2 Ativo
3 Cliente 3 Inativo
4 Cliente 4 Bloqueado
5 Cliente 5 Inativo
6 Cliente 6 Ativo
Obrigado para quem puder me ajudar.
Estou querendo fazer uma Stored Procedure que me retorne os dados de uma tabela. Até aí tudo bem, só que eu preciso calcular um campo conforme uma situação de outro campo Por Exemplo:
Tabela Cliente:
Campos - Cli_ID Integer
Cli_Razao VarChar(60)
Cli_Status Char(1)
O Cli_Status poder ter A=Ativo, I=Inativo, B=Bloqueado
Eu precisaria que a Stored Procedure me retornasse:
Cli_id Cli_Razao Situacao
1 Cliente 1 Ativo
2 Cliente 2 Ativo
3 Cliente 3 Inativo
4 Cliente 4 Bloqueado
5 Cliente 5 Inativo
6 Cliente 6 Ativo
Obrigado para quem puder me ajudar.
Stci
Curtidas 0
Respostas
Stci
09/09/2003
Pessoal. Eu já consegui fazer a minha Stored Procedure. Estou disponibilizando o Código para consulta. Obrigao a todos que se interessaram.
-----
CREATE PROCEDURE PS_PNEUS
RETURNS (
NPNEU VARCHAR(10) CHARACTER SET NONE,
MARCA VARCHAR(13) CHARACTER SET NONE,
TIPO VARCHAR(19) CHARACTER SET NONE,
DIMENSAO VARCHAR(19) CHARACTER SET NONE,
NLONAS VARCHAR(3) CHARACTER SET NONE,
SIT VARCHAR(3) CHARACTER SET NONE,
STATUS VARCHAR(16) CHARACTER SET NONE,
NSERIE VARCHAR(17) CHARACTER SET NONE,
DOT VARCHAR(7) CHARACTER SET NONE,
NFROTA VARCHAR(10) CHARACTER SET NONE,
PRODA VARCHAR(5) CHARACTER SET NONE,
CECU_ID FLOAT,
CECU_CODIGO VARCHAR(10) CHARACTER SET NONE,
CECU_DESCRICAO VARCHAR(36) CHARACTER SET NONE)
AS
BEGIN
FOR
SELECT PNEUS.NPNEU, PNEUS.MARCA, PNEUS.TIPO, PNEUS.DIMENSAO, PNEUS.NLONAS, PNEUS.SIT, PNEUS.STATUS, PNEUS.NSERIE, PNEUS.DOT, PNEUS.NFROTA, PNEUS.PRODA, PNEUS.CECU_ID, TCCUSTOS.CECU_CODIGO, TCCUSTOS.CECU_DESCRICAO
FROM PNEUS
INNER JOIN TCCUSTOS ON (PNEUS.CECU_ID = TCCUSTOS.CECU_ID)
INTO :NPNEU,
:MARCA,
:TIPO,
:DIMENSAO,
:NLONAS,
:SIT,
:STATUS,
:NSERIE,
:DOT,
:NFROTA,
:PRODA,
:CECU_ID,
:CECU_CODIGO,
:CECU_DESCRICAO
DO
BEGIN
IF (STATUS IS NULL) THEN
STATUS = ´´
;
IF (STATUS = ´E´) THEN
STATUS = ´Estoque´
;
IF (STATUS = ´U´) THEN
STATUS = ´Usado´
;
IF (STATUS = ´R´) THEN
STATUS = ´Reformado´
;
SUSPEND;
END
END
-----
-----
CREATE PROCEDURE PS_PNEUS
RETURNS (
NPNEU VARCHAR(10) CHARACTER SET NONE,
MARCA VARCHAR(13) CHARACTER SET NONE,
TIPO VARCHAR(19) CHARACTER SET NONE,
DIMENSAO VARCHAR(19) CHARACTER SET NONE,
NLONAS VARCHAR(3) CHARACTER SET NONE,
SIT VARCHAR(3) CHARACTER SET NONE,
STATUS VARCHAR(16) CHARACTER SET NONE,
NSERIE VARCHAR(17) CHARACTER SET NONE,
DOT VARCHAR(7) CHARACTER SET NONE,
NFROTA VARCHAR(10) CHARACTER SET NONE,
PRODA VARCHAR(5) CHARACTER SET NONE,
CECU_ID FLOAT,
CECU_CODIGO VARCHAR(10) CHARACTER SET NONE,
CECU_DESCRICAO VARCHAR(36) CHARACTER SET NONE)
AS
BEGIN
FOR
SELECT PNEUS.NPNEU, PNEUS.MARCA, PNEUS.TIPO, PNEUS.DIMENSAO, PNEUS.NLONAS, PNEUS.SIT, PNEUS.STATUS, PNEUS.NSERIE, PNEUS.DOT, PNEUS.NFROTA, PNEUS.PRODA, PNEUS.CECU_ID, TCCUSTOS.CECU_CODIGO, TCCUSTOS.CECU_DESCRICAO
FROM PNEUS
INNER JOIN TCCUSTOS ON (PNEUS.CECU_ID = TCCUSTOS.CECU_ID)
INTO :NPNEU,
:MARCA,
:TIPO,
:DIMENSAO,
:NLONAS,
:SIT,
:STATUS,
:NSERIE,
:DOT,
:NFROTA,
:PRODA,
:CECU_ID,
:CECU_CODIGO,
:CECU_DESCRICAO
DO
BEGIN
IF (STATUS IS NULL) THEN
STATUS = ´´
;
IF (STATUS = ´E´) THEN
STATUS = ´Estoque´
;
IF (STATUS = ´U´) THEN
STATUS = ´Usado´
;
IF (STATUS = ´R´) THEN
STATUS = ´Reformado´
;
SUSPEND;
END
END
-----
GOSTEI 0