1

2つの列でグループ化し、条件に基づいて追加の列を返すクエリを作成する必要があります。

たとえば、次の列があるとします。

ProductCode | シリアル番号| 数量| DatePurchased | 顧客ID

テーブルには、Quanititesと購入日が異なる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 に答える