insert condicional
15/04/2012
0
Tenho uma tabela de cadastrar equipamentos (EQU_ID) em manutenção mas um equipamento so pode ser cadastrado novamente se o status dele (STA_ID) for igual de 1 (1 é liberado)
alguém pode me ajudar ??
estou usando a stored procedure abaixo mas do jeito que esta ai abaixo ele inserir independente do status (STA_ID) do equipamento (EQU_ID) e o que preciso que so pode ser inserido se o equipamento não estiver mais na oficina ou seja STA_ID = 1
procedure [dbo].[INSERIR_MANUTENCAO]
@OFICINA VARCHAR(10)
,@OS VARCHAR (10)
,@STATUS INT
,@LOCAL VARCHAR (20)
,@EQUIPAMENTO_ID INT
,@DESCRICAO VARCHAR (100)
,@OBSERVACAO VARCHAR (500)
,@DT_INICIO DATETIME
,@DT_PREVISAO DATETIME
,@TIPO_SERVICO INT
,@TIPO_PREVENTIVA INT
AS
BEGIN
INSERT INTO MANUTENCOES (MAN_OFICINA,MAN_OS ,STA_ID ,MAN_LOCAL ,EQU_ID,MAN_DESCRICAO ,MAN_OBSERVACAO ,MAN_DT_INICIO,MAN_DT_PREVISAO,TIPO_SERVICO_ID,TIPO_PREV_ID)
VALUES (@OFICINA,@OS,@STATUS,@LOCAL,@EQUIPAMENTO_ID,@DESCRICAO,@OBSERVACAO,@DT_INICIO,@
DT_PREVISAO,@TIPO_SERVICO,@TIPO_PREVENTIVA)
END
Rafael
Posts
15/04/2012
Joel Rodrigues
DECLARE @LIBERADO INT SELECT @LIBERADO = (SELECT STA_ID FROM TABELA WHERE FILTRO) IF @LIBERADO = 1 INSERT...
Boa sorte.
15/04/2012
Rafael
mas o filtro no caso seria o EUQ_ID = @EQUIPAMENTO_ID ?
tentei todas possibilidade que eu imaginei mas da o seguinte erro
A subconsulta retornou mais de 1 valor. Isso não é permitido quando a subconsulta segue um =, !=, <, <= , >, >= ou quando ela é usada como uma expressão.
tentei da seguinte forma
procedure [dbo].[INSERIR_MANUTENCAO]
@OFICINA VARCHAR(10)
,@OS VARCHAR (10)
,@STATUS INT
,@LOCAL VARCHAR (20)
,@EQUIPAMENTO_ID INT
,@DESCRICAO VARCHAR (100)
,@OBSERVACAO VARCHAR (500)
,@DT_INICIO DATETIME
,@DT_PREVISAO DATETIME
,@TIPO_SERVICO INT
,@TIPO_PREVENTIVA INT
,@LIBERADO INT
AS
BEGIN
SELECT @LIBERADO = (SELECT STA_ID FROM MANUTENCOES WHERE EQU_ID = @EQUIPAMENTO)
IF @LIBERADO = 3
INSERT INTO MANUTENCOES (MAN_OFICINA,MAN_OS ,STA_ID ,MAN_LOCAL ,EQU_ID,MAN_DESCRICAO ,MAN_OBSERVACAO ,MAN_DT_INICIO,MAN_DT_PREVISAO,TIPO_SERVICO_ID,TIPO_PREV_ID)
VALUES (@OFICINA,@OS,@STATUS,@LOCAL,@EQUIPAMENTO_ID,@DESCRICAO,@OBSERVACAO,@DT_INICIO,@DT_PREVISAO,@TIPO_SERVICO,@TIPO_PREVENTIVA)
END
16/04/2012
Joel Rodrigues
21/04/2012
Emerson Nascimento
não deveria ficar gravado no cadastro do equipamento?
deveria ser algo assim:
equi
---------
equip_id
descricao
status
[demais campos]
manutencao
-----------
manutencao_id
oficina_id
os_id
equip_id
dataentrada
datasaida
dessa forma, você altera o cadastro do equipamento quando ele entrar em manutenção quando ele sair dela.
Clique aqui para fazer login e interagir na Comunidade :)