declare @sqlstr varchar(max), @querywhere varchar(max)
--set @querywhere='where BarCode like ''%9%'''
--set @querywhere='where BarCode =''9'''
set @querywhere='where s.StoreNo =''234'' '
set @sqlstr='
select distinct 0 as ttype,''店'' as ttype1, s.Id,s.StoreNo as tNo,s.StoreName as tName,s.Provinces,s.City,s.Region
from ST_Store s
left join ST_StoreShelf as ss on (ss.S_Id=s.Id)
left join ST_ShelfReserve as sr on (sr.S_Id=ss.Id)
left join CO_Commodity as c on(sr.C_Id=c.Id),ST_Depot d '+@querywhere+'
union
select distinct 1 as ttype,''仓库'' as ttype1,d.Id,d.DepotNo as tNo,d.DepotName as tName,d.Provinces,d.City,d.Region
from ST_Depot d
left join ST_DepotReserve dr on (dr.D_Id=d.Id)
left join CO_Commodity c on (c.Id=dr.C_Id),ST_Store s '+@querywhere
exec(@sqlstr)问题是,我想得到的只是店的资料,它怎么把仓库的也全部查出来了
--set @querywhere='where BarCode like ''%9%'''
--set @querywhere='where BarCode =''9'''
set @querywhere='where s.StoreNo =''234'' '
set @sqlstr='
select distinct 0 as ttype,''店'' as ttype1, s.Id,s.StoreNo as tNo,s.StoreName as tName,s.Provinces,s.City,s.Region
from ST_Store s
left join ST_StoreShelf as ss on (ss.S_Id=s.Id)
left join ST_ShelfReserve as sr on (sr.S_Id=ss.Id)
left join CO_Commodity as c on(sr.C_Id=c.Id),ST_Depot d '+@querywhere+'
union
select distinct 1 as ttype,''仓库'' as ttype1,d.Id,d.DepotNo as tNo,d.DepotName as tName,d.Provinces,d.City,d.Region
from ST_Depot d
left join ST_DepotReserve dr on (dr.D_Id=d.Id)
left join CO_Commodity c on (c.Id=dr.C_Id),ST_Store s '+@querywhere
exec(@sqlstr)问题是,我想得到的只是店的资料,它怎么把仓库的也全部查出来了
查询结果: 种类 编号 名称 所属省 所属市 所属区
店 234 1 广东省 广州市 天河区
仓库 123 2 广东省 广州市 天河区
仓库 456 3 广东省 广州市 白云区
仓库 789 4 广东省 佛山 顺德区
种类 编号 名称 所属省 所属市 所属区 编号和名称有可能是store店表的,也可以是 ST_Depot 仓库表的,现在我的问题是我必须从集成的查询条件中分别从两个表中查询数据并整合到一个视图中显示出来,而我又不知道怎么从一条含有两个表的查询条件中分别从两个表中查询出对应的内容再整合到一个视图中
比如说:
查询条件为where s.StoreNo =234 and d.DepotNo =345
但是s.StoreNo =234 只能对应ST_Store 表
而d.DepotNo=345 只能对应ST_Depot 表
两个表的结构一样: 种类 编号 名称 所属省 所属市 所属区
我要得到的是:
条件可以为:1、where s.StoreNo =234 and d.DepotNo =345
2、where s.StoreNo =234
3、where d.DepotNo =345
分别从店和仓库表中查询数据在用union整合显示到一个视图中,视图的列头为
种类 编号 名称 所属省 所属市 所属区
表结构:
店:Id,StoreNo ,StoreName ,Provinces,City,Region 仓库:DepotNo ,DepotName ,Provinces,City,Region 要显示效果的视图结构: 种类(ttype) 店/仓库编号(tNo) 店/仓库名(tName) 所属省(Provinces) 所属市(City) 所属区(Region )
我要从程序中传条件过来,条件有可能有三种情况:
1、where s.StoreNo =234 and d.DepotNo =345
2、where s.StoreNo =234
3、where d.DepotNo =345
这就以为着,我要从两个表中查出相关内容并整合到一起,再显示出来,我写成这样子:
declare @sqlstr varchar(max), @querywhere varchar(max)
set @querywhere='where s.StoreNo =''234'' '
set @sqlstr='
select distinct ''店'' as ttype, s.StoreNo as tNo,s.StoreName as tName,s.Provinces,s.City,s.Region
from ST_Store s,ST_Depot d '+@querywhere+'
union
select distinct ''仓库'' as ttype,d.DepotNo as tNo,d.DepotName as tName,d.Provinces,d.City,d.Region
from ST_Depot d,ST_Store s '+@querywhereexec(@sqlstr)执行结果:
种类(ttype) 店/仓库编号(tNo) 店/仓库名(tName) 所属省(Provinces) 所属市(City) 所属区(Region )
店 234 1 广东省 广州市 天河区
仓库 23 2 广东省 广州市 天河区
仓库 456 3 广东省 广州市 白云区
仓库 789 4 广东省 佛山 顺德区