读书人

请帮忙给优化一下这个代码`(C,D,E,F,G

发布时间: 2012-03-09 16:54:58 作者: rapoo

请各位高手帮忙给优化一下这个代码`(C,D,E,F,G表中数据量很大)
select
A.票NO,
CONVERT(VARCHAR(100),getdate(),111) AS 品日,
5 as 店CD,
A.部CD,
B.行NO,
convert(varchar(100),A.注日,111) AS 注日,
A.品予定日 as 品予定日,
2 AS 票,
B.JAN,
C.ProdName AS 商品名,
C.SubName AS 格,
D.name AS 店名,
A.ベンダCD,
E.[name] AS ベンダ名,
F.bandingunits AS 入数,
B.注数,
B.品数 AS 品予定数,
B.注数 AS 出数,
(0-B.注数) AS 品数,
NULL AS 量区分,
round(B.原,4) as 原,
B.,
B.原金,
B.金,
A.原合,
A.合,
CONVERT( VARCHAR(100),A.入力日,111) AS 入力日,
0 AS 品ステタス,
1 as 品担当者CD,
'ytjty ' as 品担当者名,
getdate() AS 登日,
A.更新日,
A.システム区分
FROM
YNTDEV244.[TrialPo].dbo.T_D振替票 A
INNER JOIN
YNTDEV244.[TrialPo].dbo.T_D振替明 B
ON
A.票NO=B.票NO
AND
A.店CD=B.店CD
AND
A.品日=B.品日
AND
A.ベンダCD=B.ベンダCD


LEFT JOIN

YNTDEV244.[TrialPo].dbo.products C
on
B.JAN=C.prodcode
LEFT JOIN
YNTDEV244.[TrialPo].dbo.branches D
ON
A.店CD=D.branchcode
LEFT JOIN
YNTDEV244.[TrialPo].dbo.suppliers E
ON
CONVERT(VARCHAR(12),A.ベンダCD )= E.supplier
LEFT JOIN
YNTDEV244.[TrialPo].dbo.productcodes G
ON
C.prodint = G.prodint
LEFT JOIN
(select distinct bandingunits,varint from YNTDEV244.[TrialPo].dbo.PRSourcePrefs ) F
ON
G.varint = F.varint
WHERE
A.部CD IN (SELECT level2 FROM YNTDEV244.TrialPo.dbo.structlevels WHERE level1=22)
AND
A.票NO NOT IN
(SELECT 票NO FROM FreshInformation_127_0_0_1 WHERE 票NO=A.票NO AND 店CD=A.店CD AND 部CD=A.部CD AND 行NO=B.行NO)
AND
A.店CD=5
AND A.品予定日 between '2006/04/13 ' and '2007/07/13 '
AND A.品区分=0
AND A.票区分=30


[解决办法]
用分块查找实施,建立临时表,把数据量大的表分开处理

读书人网 >SQL Server

热点推荐