Inquiridor
Case com SubConsulta

Pergunta
-
Oi pessoal. Tenho tabelas Produtos, CodigosBarra e Estados
A tabela CodigosBarra guarda os Códigos de Barra de cada produto. A tabela Estados guarda os estados do registo(A=Activo,N=Cancelado e C=Confirmado).
No formulário Produto "VB .Net" tenho um CheckBox que me permite visualizar na grelha apenas registos Activos
ou Todos sendo o campo Código do Produto (CodProd) obrigatório pois um Código de Barra deve estar relacionado a um produto.
O procedimento abaixo so me devolve um registo.
Create
Procedure pPesquisarCodigoBarra_Prod(@CodProd
int,@Estado
char)
as
Select
CodBar,CodProd,CodigoBarra,Descricao,Estadofrom
CodigosBarrawhere
CodProd=@CodProd and Estado = Case when @Estado='ALL' then (Select Estado FROM Estados) Else @EstadoEnd
Todas as Respostas
-
-
-
Emanuel.
Do formulário, o Procedimento armazenado recebe os valores @CodProd e @Estado.
@CodProd traz o Código do Produto. Aqui não há problema.
@Estado traz os valores 'A', 'N', 'C' e 'ALL'
Se for 'A' deve seleccionar todos códigos de barra activos, 'N' os cancelados, 'C' confirmados. Até aqui não problema.
Se for 'ALL' deve seleccionar todos (activos, cancelados e confirmados). É aqui onde está o problema.
Eis as tabelas:
Produtos(CodProd,Referencia,NomeProd,CodUnid, StockMin,StockMax,QtdPedida,Saldo,Estado,UsuarioGrav,DataGrav,UsuarioAlt,DataAlt)
CodigosBarra(CodBar,CodProd,CodigoBarra,Descricao,Estado,UsuarioGrav,DataGrav,UsuarioAlt,DataAlt)
Não sei se fui claro.
Abraços.