काश, SQL सर्वर 2005 में विंडो फ़ंक्शन पर्याप्त शक्तिशाली नहीं होते। मैं इसे एक सहसंबद्ध उपश्रेणी का उपयोग करके हल करूंगा।
सहसंबद्ध सबक्वेरी यह गिनता है कि किसी व्यक्ति ने प्रत्येक खरीदारी के बाद 14 दिनों के भीतर कितनी बार आइटम खरीदा (और पहली खरीदारी की गणना नहीं की)।
select t.*
from (select t.*,
(select count(*)
from t t2
where t2.personnumber = t.personnumber and
t2.itemnumber = t.itemnumber and
t2.transactionnumber <> t.transactionnumber and
t2.transactiondate >= t.transactiondate and
t2.transactiondate < DATEADD(day, 14, t.transactiondate
) NumWithin14Days
from transactions t
where transactionDate between '2001-01-01' and '2001-03-01'
) t
where NumWithin14Days > 0
आप समय सीमा को सबक्वायरी में भी रखना चाह सकते हैं।
transactions(personnumber, itemnumber, transactionnumber, itemdate)
इसे बहुत तेजी से चलाने में मदद कर सकता है।