多条件判断 查询语句询问!解决办法

多条件判断 查询语句询问!~SQL codecreate table #入库表(DATE datetime, --日期 ITEM varchar(10), --科

多条件判断 查询语句询问!~

SQL code
create table #入库表(DATE datetime, --日期 ITEM varchar(10), --科目 TYPE varchar(10), --类型 QTY int) --数量insert into #入库表 values('2011-1-1', '医药', '入库', 10)insert into #入库表 values('2011-1-2', '医药', '出库', 10)insert into #入库表 values('2011-1-3', '医药', '出库', 20)insert into #入库表 values('2011-1-4', '衣物', '出库', 15)insert into #入库表 values('2011-1-5', '食品', '入库', 5 )insert into #入库表 values('2011-1-6', '食品', '出库', 1 )insert into #入库表 values('2011-1-7', '衣物、玩具', '入库', 30)--创建 领用表create table #领用表(DATE datetime, --日期 ITEM varchar(10), --科目 TYPE varchar(10), --类型 QTY int) --数量insert into #领用表 values('2011-1-7', '食品', '领用', 30 )insert into #领用表 values('2011-1-5', '衣物', '领用', 30 )insert into #领用表 values('2011-1-3', '食品', '领用', 30 )查询条件: 当参数为1:ITEM Like '%衣物%' And TYPE <> 出库 当参数为2:ITEM Like '%食品%'  当参数为3:TYPE = 出库 当参数为4:DATE 在领用表中出现查询#入库表中符合条件的数据。请问该如何编写!~~Declare @参数 Varchar(4)    Set @参数 = '2'Select ...... 


[解决办法]
SQL code
-->tryDeclare @参数 Varchar(4)    declare @sql nvarchar(max)Set @参数 = '3'set @sql='select * from #入库表 t where 'select @sql=@sql+case when @参数='1' then N'ITEM Like ''%衣物%'' And TYPE <> N''出库'''                      when @参数='2' then N'ITEM Like ''%食品%'''                      when @参数='3' then N'TYPE = N''出库'''                      when @参数='4' then N'exists(select 1 from #领用表 where Date=t.Date)'                 endprint @sqlexec(@sql)
[解决办法]
SQL code
create table #入库表(DATE datetime, --日期 ITEM varchar(10), --科目 TYPE varchar(10), --类型 QTY int) --数量insert into #入库表 values('2011-1-1', '医药', '入库', 10)insert into #入库表 values('2011-1-2', '医药', '出库', 10)insert into #入库表 values('2011-1-3', '医药', '出库', 20)insert into #入库表 values('2011-1-4', '衣物', '出库', 15)insert into #入库表 values('2011-1-5', '食品', '入库', 5 )insert into #入库表 values('2011-1-6', '食品', '出库', 1 )insert into #入库表 values('2011-1-7', '衣物、玩具', '入库', 30)--创建 领用表create table #领用表(DATE datetime, --日期 ITEM varchar(10), --科目 TYPE varchar(10), --类型 QTY int) --数量insert into #领用表 values('2011-1-7', '食品', '领用', 30 )insert into #领用表 values('2011-1-5', '衣物', '领用', 30 )insert into #领用表 values('2011-1-3', '食品', '领用', 30 )Declare @参数 Varchar(4)--设置参数(1、2、3、4)Set @参数 = '1'  --自己设定--判断@参数的值if @参数='1'beginselect date,item,type,qty from #入库表 where ITEM Like '%衣物%' And TYPE <> '出库'endelse if @参数='2'beginselect date,item,type,qty from #入库表 where ITEM Like '%食品%'endelse if @参数='3'beginselect date,item,type,qty from #入库表 where TYPE = '出库'endelse if @参数='4'beginselect date,item,type,qty from #领用表 where date='2011-1-7'  --时间自己设定end--用完删表,编程好习惯drop table #入库表,#领用表/*--测试--set @参数='1'date                        item       type       qty         --------------------------- ---------- ---------- ----------- 2011-01-07 00:00:00.000     衣物、玩具      入库         30--set @参数='2'date                        item       type       qty         --------------------------- ---------- ---------- ----------- 2011-01-05 00:00:00.000     食品         入库         52011-01-06 00:00:00.000     食品         出库         1--set @参数='3'date                        item       type       qty         --------------------------- ---------- ---------- ----------- 2011-01-02 00:00:00.000     医药         出库         102011-01-03 00:00:00.000     医药         出库         202011-01-04 00:00:00.000     衣物         出库         152011-01-06 00:00:00.000     食品         出库         1--set @参数='4'date                        item       type       qty         --------------------------- ---------- ---------- ----------- 2011-01-07 00:00:00.000     食品         领用         30*/