我已經嘗試過,但我無法弄清楚這一點。我有一個表事務(transaction_ID,transaction_Person_ID,Transaction_Date等)。 我想要的是返回去年每週有超過3筆交易的所有transaction_person_ID。這意味着我必須檢查1-1-10到7-1-10,看看是否有人在7天內有超過3筆交易,然後是2-1-10到8-1-10,然後是3-1 -10到9-1-10等等等 我現在我需要使用遞歸選擇,但我寫的東西不會產生正確的時間框架。 我已經寫到目前爲止,這是爲了查找一段時間的交易的T-SQL遞歸
WITH Dates AS (
SELECT
[Date] = CONVERT(DATETIME,'01/01/2010')
UNION ALL SELECT
[Date] = DATEADD(DAY, 1, [Date])
FROM
Dates
WHERE
Date < '12/31/2010'
)
SELECT transaction_person_Id FROM transactions
JOIN DATES
ON transactions.transaction_date = dates.date
where transactions.Transaction_Date between dateadd(DAYOFYEAR,-7,dates.date) and dates.date
group by transaction_person_Id
having count(transaction_person_ID) >= 4
OPTION (MAXRECURSION 2000)
非常感謝
PS: 簡單的話,我需要做的就是這個
select transaction_person_ID from transactions
where Transaction_Date between '2010-01-01' and '2010-01-07'
group by transaction_person_Id
having count(transaction_person_ID) >= 4
然後
select transaction_person_ID from transactions
where Transaction_Date between '2010-01-02' and '2010-01-08'
group by transaction_person_Id
having count(transaction_person_ID) >= 4
。 。 。 。 。 直到它
select transaction_person_ID from transactions
where Transaction_Date between '2010-12-25' and '2010-12-31'
group by transaction_person_Id
having count(transaction_person_ID) >= 4
我需要這些365的結果的查詢
你想要360個不同的結果集嗎? – gbn 2010-12-09 08:49:41