質問

私は条件に基づいて追加の列を返す二つの列によってグループやクエリを作成する必要があります。

たとえば、私は次の列を持っていると言うます:

製品コード| SerialNumber |数量| DatePurchased |得意先

と、テーブルはQuanititesと購入日が異なると製品コードとのSerialNumberの重複組み合わせが含まれています。私はDatePurchasedのための最大の(最新の)値を持つ行の製品コード、のSerialNumberおよび数量を返すようにしたいと思います。さらに物事を複雑にするにはこれが得意先は=「XXX」のすべての行に対して実行する必要があります。

任意のアイデア???

すべてのヘルプは大歓迎します。 乾杯ます。

役に立ちましたか?

解決

ユニーク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'

他のヒント

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