Busca Código não cadastrado
Olá pessoal. Boa Tarde.
Estou precisando de fazer uma consulta em uma tabela dos códigos que não foram cadastrados. exemplo:
codigo | nome
0001 pao
0002 sabao
0004 leite
0005 bolacha
0008 uva
0009 feijao
nesse caso preciso que na consulta me retorne somente os códigos 0003, 0006 e 0007. (não cadastrado) Já tentei fazer sql com o NOT EXISTS mais não obtive êxido. Alguem possui alguma sugestão. Obrigado a todos.
Estou precisando de fazer uma consulta em uma tabela dos códigos que não foram cadastrados. exemplo:
codigo | nome
0001 pao
0002 sabao
0004 leite
0005 bolacha
0008 uva
0009 feijao
nesse caso preciso que na consulta me retorne somente os códigos 0003, 0006 e 0007. (não cadastrado) Já tentei fazer sql com o NOT EXISTS mais não obtive êxido. Alguem possui alguma sugestão. Obrigado a todos.
Leandroptu
Curtidas 0
Respostas
Douglas
03/01/2014
Olá Amigo, faça o seguinte código abaixo:
OBS: O select acima é apenas um exemplo.
SELECT * FROM TABELA WHERE CODIGO IN (0003, 0006 e 0007)
OBS: O select acima é apenas um exemplo.
GOSTEI 0
Leandroptu
03/01/2014
Amigo,
Boa Tarde,
Entendi a ideia da sua resposta, mais o meu problema é identificar a inexistência do 0003 e demais.
Obrigado
Boa Tarde,
Entendi a ideia da sua resposta, mais o meu problema é identificar a inexistência do 0003 e demais.
Obrigado
GOSTEI 0
Douglas
03/01/2014
Amigo,
Boa Tarde,
Entendi a ideia da sua resposta, mais o meu problema é identificar a inexistência do 0003 e demais.
Obrigado
Boa Tarde,
Entendi a ideia da sua resposta, mais o meu problema é identificar a inexistência do 0003 e demais.
Obrigado
Leandro,
Coloque a claúsula Not antes do in, daí irá resultar todos os códigos que não estive entre o que
você escolheu.
SELECT * FROM TABELA WHERE CODIGO NOT IN (0003, 0006 e 0007)
Aguardo FeedBack.
GOSTEI 0
Douglas
03/01/2014
Amigo,
Boa Tarde,
Entendi a ideia da sua resposta, mais o meu problema é identificar a inexistência do 0003 e demais.
Obrigado
Boa Tarde,
Entendi a ideia da sua resposta, mais o meu problema é identificar a inexistência do 0003 e demais.
Obrigado
Leandro,
Coloque a claúsula Not antes do in, daí irá resultar todos os códigos que não estive entre o que
você escolheu.
SELECT * FROM TABELA WHERE CODIGO NOT IN (0003, 0006 e 0007)
Aguardo FeedBack.
Amigo uma correção.
O meu código do select esta errado favor corrigir colocando conforme mostrado abaixo:
WHERE CODIGO NOT IN (0003, 0006, 0007)
Me desculpe.
GOSTEI 0
Thiago Irrazabal
03/01/2014
Boa tarde, fiz uma procedure de "exemplo" veja se te serve, abraço.
Att,
Thiago Irrazabal de Oliveira.
SET TERM ^ ;
CREATE OR ALTER PROCEDURE SP_BUSCA_CODIGO
RETURNS (
CODIGOS BLOB SUB_TYPE 1 SEGMENT SIZE 120)
AS
DECLARE VARIABLE COD INTEGER;
DECLARE VARIABLE MAX_CODIGO INTEGER;
DECLARE VARIABLE MIN_CODIGO INTEGER;
BEGIN
SELECT MAX(CODIGO) FROM CAD_PRODUTO
INTO :MAX_CODIGO;
SELECT MIN(CODIGO) FROM CAD_PRODUTO
INTO :MIN_CODIGO;
WHILE (:MIN_CODIGO <= :MAX_CODIGO) DO
BEGIN
SELECT CODIGO FROM CAD_PRODUTO
WHERE CODIGO = :MIN_CODIGO INTO :COD;
IF (:COD = 0) THEN
IF (CODIGOS IS NULL) THEN
CODIGOS = CAST(MIN_CODIGO AS VARCHAR(10));
ELSE
CODIGOS = CODIGOS || ', ' || CAST(MIN_CODIGO AS VARCHAR(10));
MIN_CODIGO = MIN_CODIGO + 1;
COD = 0;
END
SUSPEND;
END^
SET TERM ; ^
GRANT SELECT ON CAD_PRODUTO TO PROCEDURE SP_BUSCA_CODIGO;
GRANT EXECUTE ON PROCEDURE SP_BUSCA_CODIGO TO SYSDBA;
Att,
Thiago Irrazabal de Oliveira.
GOSTEI 0