1

我需要创建一个查询,该查询按两列分组并根据条件返回一个附加列。

例如,假设我有以下列:

产品代码 | 序列号 | 数量 | 购买日期 | 客户ID

该表包含具有不同数量和购买日期的 ProductCode 和 SerialNumber 的重复组合。我想为 DatePurchased 返回具有最大(最近)值的行的 ProductCode、SerialNumber 和 Quantity。为了使事情更加复杂,必须对 CustomerID = 'xxx' 的所有行执行此操作。

有任何想法吗???

任何帮助表示赞赏。干杯。

4

2 回答 2

1

假设唯一的 DatePurchased:

SELECT a.*
FROM Table as a
JOIN (
   SELECT ProductCode, SerialNumber, MAX(DatePurchased) as MaxDate 
   FROM Table
   GROUP BY ProductCode, SerialNumber
) as b ON
   a.ProductCode = b.ProductCode
   AND a.SerialNumber = b.SerialNumber
   AND a.DatePurchased = b.MaxDate
WHERE
   a.CustomerID = 'xxx'
于 2009-05-12T02:06:24.350 回答
0
SELECT
     T1.ProductCode,
     T1.SerialNumber,
     T1.Quantity
FROM
     Some_Table T1
LEFT OUTER JOIN Some_Table T2 ON
     T2.ProductCode = T1.ProductCode AND
     T2.SerialNumber = T1.SerialNumber AND
     T2.CustomerID = T1.CustomerID AND
     T2.DatePurchased > T1.DatePurchased
WHERE
     T1.CustomerID = 'xxx' AND
     T2.ProductCode IS NULL
于 2009-05-12T04:21:19.230 回答