我需要从Inventory Transaction表中返回Item Master表中每个Item#的第一个和最后一个库存事务处理日期.我需要最后的日期来显示最近是否有任何类型的活动,但我需要第一个日期的目的,以显示何时创建的部分.有一个交易代码的描述,这=‘新项目’,所以我想筛选最小日期汇总的代码,但我不想要任何最大日期汇总的过滤器.TRANSACTION表有数百万行.
有没有比只有两个CTE子查询更有效的方法来实现这一点呢?
WITH MinDate AS(
SELECT
PartID
,MIN(TransDate) AS 'MinTrans'
FROM Translog
WHERE TransDesc = 'NEW ITEM'
GROUP BY PartID),
MaxDate AS(
SELECT
PartID
,MAX(TransDate) AS 'MaxTrans'
FROM Translog
GROUP BY PartID)
SELECT
PartID
,MinTrans
,MaxTrans
FROM ItemTab
LEFT JOIN MinDate
ON MinDate.PartID = ItemTab.PartID
LEFT JOIN MaxDate
ON MaxDate.PartID = ItemTab.PartID