سؤال

وأحتاج لإنشاء استعلام التي تضم اثنين من الأعمدة ويعود عمود إضافي تستند إلى شرط.

وعلى سبيل المثال، ويقول لقد حصلت على الأعمدة التالية:

و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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top