原始的语句: use dssxx -- 查询指定月份历史销售记录 -- 参数:@Date (仅取月份) SELECT 1 ,a.fnumber as itemNumber -- 物料代码 ,c.FName as itemName -- 物料名称 ,c.FHelpCode as helpCode -- 助记码 ,a.fprice as salesPrice -- 销售单价 ,sum(fqty) as salesQuantity -- 销售量 ,sum(famount) as salesAmount -- 销售金额 FROM dbo.v_ywk AS a INNER JOIN dbo.t_bos200000017 AS b ON a.khbh = b.FText INNER JOIN dbo.t_icitem AS c ON a.fnumber = c.FNumber WHERE DATEDIFF(Month, a.dhdate, '2010-6-1' ) = 0 and (b.FText8 <> '公司') -- Lx 可以解释 group by a.fnumber, a.fprice, c.FName, c.FHelpCode order by sum(famount) desc 改进的语句: -- 查询指定月份历史销售记录 -- 参数:@Date (仅取月份) SELECT 1, c.FItemID AS itemID, -- 物料ID a.fnumber AS itemNumber, -- 物料代码 c.FName AS itemName, -- 物料名称 c.FHelpCode AS helpCode, -- 助记码 a.fprice AS salesPrice, -- 销售单价 SUM(a.fqty) AS salesQuantity, -- 销售量 SUM(a.famount) AS salesAmount -- 销售金额 FROM ( SELECT fnumber, fprice, fqty, famount, khbh FROM linkServerK3.dssxx.dbo.v_ywk tmp -- WHERE dhdate BETWEEN '2010-06-01' AND dateadd(day, -1, dateadd(month, 1, '2010-06-01')) WHERE dhdate >= '2010-06-01' AND dhdate < dateadd(month, 1, '2010-06-01') AND EXISTS( SELECT 1 FROM linkServerK3.dssxx.dbo.t_bos200000017 WHERE tmp.khbh = FText AND FText8 <> '公司' ) )a INNER JOIN linkServerK3.dssxx.dbo.t_icitem c ON a.fnumber = c.FNumber GROUP BY a.fnumber, a.fprice, c.FName, c.FHelpCode, c.FItemID ORDER BY SUM(a.famount) DESC 效率提高近十倍,一个字:强!