이 문제에 대해 하위 쿼리를 사용할 수 있습니다. 다만 현재의 점수를 더한 과거 점수의 합을 나열하는 쿼리에 열을 추가 한 다음 임계 값
내가 생각 Sql Fiddle
Use tempdb
Create Table Scoring (DateAdded DateTime, Score INT, Team INT)
INSERT Scoring SELECT GetDate(), 100, 1
INSERT Scoring SELECT GetDate()+1, 150, 1
INSERT Scoring SELECT GetDate()+1, 50, 2
INSERT Scoring SELECT GetDate()+2, 75, 2
INSERT Scoring SELECT GetDate()-10, 75, 2
DECLARE @Threshhold INT
SET @Threshhold = 125
-- Table which includes a cumulative score
;WITH tbl AS
(
SELECT
Team,
DateAdded,
Score,
-- This column calculates the current score + the sum of past scores
IsNull((SELECT Sum(t2.Score) CumScore FROM Scoring t2 WHERE t2.Team = t.Team AND t2.DateAdded < t.DateAdded),0)
+ Score AS CumScore
FROM Scoring t
)
-- Find first record > threshold
SELECT TOP 1 * FROM tbl
WHERE CumScore >= @Threshhold
ORDER BY DateAdded ASC
? 그리고 '연대 측정'점수는 무엇을 의미합니까? 나중에 점수를 언제든지 추가 할 수 있다면 임계 값에 도달했을 때 어떻게 알 수 있습니까? 예를 들어, 팀 A가 수요일에 임계 값을 통과 한 다음 목요일 B 팀은 화요일에 어느 날 전날 전달한 데이터를 입력합니다. 아마도 이것은 당신이 의도 한 바가 아니지만 귀하의 설명이 명확하지 않습니다. – Pondlife