返回部分鲜明/唯一行
题
我需要创建一个查询基于条件的哪些组由两列,并返回一个附加列。
举例来说,假设我有以下的列:
的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
不隶属于 StackOverflow