Duvida na criação do Select

SQL Server

08/12/2010


Oi galera gente fina....
eu utilizo um controle no C# que busca meus item salvo no banco...porem estou com uma situação que em algumas telas eu preciso de todos os itens acho q em 3 telas eu uso ele normalmente...mas agora surgiu um problemaem que eu só posso exibir neste controle os itens correspondentes ao que o almoxarifado possui... entao tentei montar um select que se possui um almoxarifado mostre os itens correspondente se nao mostrar todos os itensmas se eu coloco um OR nao funciona pois se eu nao informar o almoxarifado ele nao traz todos os itens que temcomo eu poderia fazer para mostrar todos os itens, mas se tiver um almoxarifado trazer so itens que estao a eles vinculados

select IT.idItem, IT.dsItem from tbGerItens IT   inner join tbAlmAlmoxarifadosItens almit on almit.idItem = IT.idItem            where almit.idAlmoxarifado = 4 or almit.idAlmoxarifado =0 
Tânia Fiertz

Tânia Fiertz

Curtidas 0

Respostas

Tânia Fiertz

Tânia Fiertz

08/12/2010

Deve ser uma coisa bem simplesserá que me expressei direito
bom resumindose tiver o parametro no caso almoxarifado mostrar os itens vinculados a ele se nao mostrar todos os itens cadastrados
Muito Obrigada
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

08/12/2010

select
  IT.idItem, IT.dsItem from tbGerItens ITinner join
  tbAlmAlmoxarifadosItens almit on almit.idItem = IT.idItemwhere
  (:parametro = -1) or (almit.idAlmoxarifado = :parametro)


assim você pode passar -1 para o parâmetro ou passar o id do almoxarifado. se for -1 lista tudo, qualquer outro valor indica que só itens daquele almoxarifado serão exibidos


GOSTEI 0
Tânia Fiertz

Tânia Fiertz

08/12/2010

Muito Legalmas pq no sql server nao funciona os dois pontos ":"?
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

08/12/2010

funciona em alguns admins de bancos de dado, mas coloquei daquela forma somente para ficar claro que ali deve ser um valor informado pelo usuário e não o conteúdo de um campo.
GOSTEI 0
Tânia Fiertz

Tânia Fiertz

08/12/2010

Muito Obrigada vou tentar fazer...
GOSTEI 0
Cristiano Pimenta

Cristiano Pimenta

08/12/2010

oi, um admins q eu uso e funciona os : e o Sql Manager 2010 Lite for Sql Server 3.6.0.1, uso ele na sua versao free muito bom   segue abaixo link para download   http://www.sqlmanager.net/
GOSTEI 0
Tânia Fiertz

Tânia Fiertz

08/12/2010

Pois é eu usava um outro acho que IBexpert nao me recordo ou firebird nao lembro mais o nome que funcionava tb...mais eu fiz uma procedure para passar o parametro e deu certo ainda bem
ALTER procedure [dbo].[Sp_ItensAlmoxarifado]@idAlm as intasselect IT.idItem, IT.dsItem from tbGerItens IT   left join tbAlmAlmoxarifadosItens almit on almit.idItem = IT.idItem inner join tbGerCategoriasItens Cat  on Cat.idCategoria = IT.idCategoria            where almit.idAlmoxarifado = @idAlm or @idAlm=0se eu informar o almoxarifado ele ira trazer os itens que esta vinculado na tabela almoxarifadoitensse nao ele me tras todos os itens ..
obrigada galera pelas dicas
GOSTEI 0
POSTAR