整合SQL,立即解決,立即給分

qifachen 2011-03-04 10:53:13
declare @inventbatchid varchar(50)
declare @itemid varchar(50)
declare @thk_inventd2id varchar(20)
declare @thk_inventd3id varchar(20)
declare @thk_inventd4id varchar(20)
declare @thk_inventdgoldtypeid varchar(10)
declare @thk_inventproducttypeid varchar(10)
declare @startexpDate varchar(10)
declare @endexpdate varchar(10)
declare @litemid varchar(50)
declare @itemgroupid varchar(10)
declare @ktl_stonetypeid varchar(10)
declare @THK_StoneComplexityId varchar(10)

drop table #getinventbatch
select INVENTBATCHID ,ITEMID,expDate
into #getinventbatch from INVENTBATCH
where INVENTBATCHID =@inventbatchid
and ITEMID =@itemid
and CONVERT(VARCHAR(10),expDate ,120) between @startexpDate and @endexpdate

drop table #getbomversion
select distinct #getinventbatch.*,BOMVERSION.THK_INVENTD2ID,
BOMVERSION .THK_INVENTD3ID,BOMVERSION .THK_INVENTD4ID,
BOMVERSION.THK_INVENTDGOLDTYPEID into #getbomversion
from #getinventbatch inner join BOMVERSION
on #getinventbatch.itemid = BOMVERSION .ITEMID
and BOMVERSION.THK_INVENTD2ID=@thk_inventd2id
and BOMVERSION .THK_INVENTD3ID=@thk_inventd3id
and BOMVERSION .THK_INVENTD4ID=@thk_inventd4id
and BOMVERSION.THK_INVENTDGOLDTYPEID=@thk_inventdgoldtypeid

drop table #getinventtable
select distinct #getbomversion.*,INVENTTABLE.THK_INVENTPRODUCTTYPEID
into #getinventtable from #getbomversion inner join INVENTTABLE
on #getbomversion.itemid = INVENTTABLE.ITEMID
and INVENTTABLE.THK_INVENTPRODUCTTYPEID=@thk_inventproducttypeid
and INVENTTABLE.THK_INVENTSILVERITEM

drop table #getinventdim
select distinct #getinventtable.*,INVENTDIM.INVENTDIMID
into #getinventdim from #getinventtable inner join INVENTDIM
on #getinventtable.inventbatchid = INVENTDIM.INVENTBATCHID

drop table #getprodtable
select distinct #getinventdim.*,PRODTABLE.PRODID
into #getprodtable from #getinventdim inner join PRODTABLE
on #getinventdim.inventdimid = PRODTABLE.INVENTDIMID

drop table #getlastwip
select distinct #getprodtable.*, THK_LastWIPMaterialTrans.ITEMID as 'Litemid',
THK_LastWIPMaterialTrans.OUTQTY ,THK_LastWIPMaterialTrans.UNITID
into #getlastwip from #getprodtable inner join
THK_LastWIPMaterialTrans
on #getprodtable.prodid = THK_LastWIPMaterialTrans.PRODID
and THK_LastWIPMaterialTrans.ITEMID=@litemid

drop table #getlastinvent
select distinct #getlastwip.*,INVENTTABLE.ITEMGROUPID ,
INVENTTABLE.KTL_STONETYPEID,INVENTTABLE.THK_StoneComplexityId
into #getlastinvent from #getlastwip inner join INVENTTABLE
on #getlastwip.litemid = INVENTTABLE.ITEMID
and INVENTTABLE.ITEMGROUPID = @itemgroupid
and INVENTTABLE.KTL_STONETYPEID = @ktl_stonetypeid
and INVENTTABLE.THK_StoneComplexityId = @THK_StoneComplexityId
...全文
139 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
XiangZhiLiu 2011-03-08
  • 打赏
  • 举报
回复
说说需求,原表发上来,这才是正点,那么多code,谁看都发晕、、、
Sphonix 2011-03-07
  • 打赏
  • 举报
回复
先把你的目的说清楚,然后把表关系介绍清楚,上来就一堆sql脚本,不说看的头晕至少要花不少时间啊,考别人么?呵呵。
qifachen 2011-03-07
  • 打赏
  • 举报
回复
也就是說把上面的寫成一條SQL語句就行了,就不需要那么多的臨時表來做
--小F-- 2011-03-04
  • 打赏
  • 举报
回复
没明白意思.
qifachen 2011-03-04
  • 打赏
  • 举报
回复
那6個表的關系上面不是一層一層關聯起來了么?關系都己經寫了關聯的字段了哦,distinct 只是去除重復項
Linares 2011-03-04
  • 打赏
  • 举报
回复
为什么每个表都用distinct?搞不明白你6个表之间的关系了。
qifachen 2011-03-04
  • 打赏
  • 举报
回复
2樓的,我要求的不是這樣的,不是查出結果集來集合,而己在集合那些條件查出結果集合
王向飞 2011-03-04
  • 打赏
  • 举报
回复
select * from #getinventbatch
union all
select * from #getinventdim
union all
select * from #getlastinvent
。。。
qifachen 2011-03-04
  • 打赏
  • 举报
回复
為什么要整合呢,因為這一些是通過一個一個表來關聯的,參數用戶在界面上不一定填,所以就選成很難判斷
取哪一個表的數據先,也就是先后取數的問題,所以為解決這一問題,必順要它他們整合起來
請高手指點

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧