我不知道技能是如何計算這個已經寫了一個替代選擇,你可以加入到它,並相應地更新行。還創建了9行的一些示例數據;最後兩個H和我有相同的技能和學校,但不同的年齡(一天)。假設你有出生日期,最大/最小值將起作用。你仍然可以有相同年齡的球員,所以需要有一個機制來解決這個問題。不確定的標準,所以它不照顧這裏。
declare @players table (school varchar(100), weight float, skill int, dob datetime, name varchar(100))
insert into @players
select 'a', 100, 10, GETDATE(), 'a'
union all select 'a', 101, 11, GETDATE(), 'b'
union all select 'a', 102, 12, GETDATE(), 'c'
union all select 'a', 103, 13, GETDATE(), 'd'
union all select 'a', 104, 14, GETDATE(), 'e'
union all select 'a', 105, 15, GETDATE(), 'f'
union all select 'a', 106, 16, GETDATE(), 'g'
union all select 'a', 107, 17, GETDATE(), 'h'
union all select 'a', 107, 17, dateadd(dd,-1,GETDATE()), 'i'
select * from @players
SELECT
school,
weight,
max(skill) as Skill,
MIN(dot) as DOB
FROM @players b
group by school, weight
返回; 8排並且選擇107個體重類別球員中較年輕的球員。
school weight (No column name) (No column name)
a 100 10 2012-04-23 08:53:19.877
a 101 11 2012-04-23 08:53:19.877
a 102 12 2012-04-23 08:53:19.877
a 103 13 2012-04-23 08:53:19.877
a 104 14 2012-04-23 08:53:19.877
a 105 15 2012-04-23 08:53:19.877
a 106 16 2012-04-23 08:53:19.877
a 107 17 2012-04-22 08:53:19.877
如果他們有相同的年齡? – 2012-04-23 07:48:02
好點..我認爲運行一個額外的查詢可能是最好的,以查看每個學校的首發總人數是否大於總權數,然後可能找到受影響的區域並對其進行編輯 – Meowbits 2012-04-23 22:17:25
@Meowbits:I不要以爲這就是阿米特試圖說的,這應該是完全可能在一個單一的查詢。 – 2012-04-24 06:30:14