عودة الصفوف متميزة جزئيا / فريدة
سؤال
وأحتاج لإنشاء استعلام التي تضم اثنين من الأعمدة ويعود عمود إضافي تستند إلى شرط.
وعلى سبيل المثال، ويقول لقد حصلت على الأعمدة التالية:
وProductCode | SerialNumber | الكمية | DatePurchased | العميل
ويحتوي الجدول مجموعات مكررة من ProductCode وSerialNumber مع اختلاف Quanitites وشراء التواريخ. أود أن إعادة ProductCode، SerialNumber والكمية للصف مع أكبر قيمة (أحدث) لDatePurchased. لمزيد من تعقيد الأمور على هذا يجب أن يتم ذلك لجميع الصفوف حيث العميل = "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
لا تنتمي إلى StackOverflow