我需要创建一个查询基于条件的哪些组由两列,并返回一个附加列。

举例来说,假设我有以下的列:

的ProductCode |的SerialNumber |产品数量|购置日期|客户id

和表中包含的ProductCode和的SerialNumber的重复的组合具有不同Quanitites和购买日期。我想退货的产品代码,和的SerialNumber在数量与用于购置日期最大的(最近)值的行。为了进一步的东西这必须对所有行进行复杂化,其中客户id =“xxx”的。

任何想法???

任何帮助理解。 欢呼声。

有帮助吗?

解决方案

假设独特购置日期:

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'

其他提示

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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top