日期:2014-05-17  浏览次数:20482 次

这个查询语句可以简化吗?
这个查询语句可以简化吗?

SELECT * FROM ICPrcPlyEntry AS Price INNER JOIN 
(SELECT  FItemID,FRelatedID,FCuryID,FUnitID,max(FBegDate) AS FBegDate FROM ICPrcPlyEntry 
GROUP BY  FItemID,FRelatedID,FUnitID,FCuryID) AS Ref 
ON Ref.FItemID=Price.FItemID AND Ref.FRelatedID=Price.FRelatedID AND
 Ref.FUnitID = Price.FUnitID AND Ref.FCuryID=Price.FCuryID AND Price.FBegDate=Ref.FBegDate



------解决方案--------------------
你这个是求最近一个日期的数据是吧,我给格式化了一下,基本上你的语句已经很优化了:


SELECT * 
FROM ICPrcPlyEntry AS Price 
INNER JOIN 
(
SELECT  FItemID,FRelatedID,
        FCuryID,FUnitID,
        max(FBegDate) AS FBegDate 
FROM ICPrcPlyEntry 
GROUP BY  FItemID,FRelatedID,FUnitID,FCuryID
) AS Ref 
ON 
 Ref.FItemID=Price.FItemID AND 
 Ref.FRelatedID=Price.FRelatedID AND
 Ref.FUnitID = Price.FUnitID AND 
 Ref.FCuryID=Price.FCuryID AND 
 Price.FBegDate=Ref.FBegDate