比方說,我有一個這樣叫小時表:SQL - 如何查找年初至今的金額?
employee, payperiod, hours
greg, 1/31/2010, 12
greg, 1/31/2010, 15
mark, 1/31/2010, 10
mark, 1/31/2010, 11
greg, 2/28/2010, 12
greg, 2/28/2010, 15
greg, 2/28/2010, 4
我怎麼會發現,今年迄今爲止小時對於給定的員工和payperiod?
對於上面的例子我願意去:
employee, payperiod, hours_YTD
greg, 1/31/2010, 27
mark, 1/31/2010, 21
greg, 2/28/2010, 58
mark, 2/28/2010, 21 (this row is a nice to have, I can live without it if it's too tricky)
到目前爲止,我已經試過,但總好像離:
select employee,payperiod,sum(hours) from hours h1
join hours h2 on h2.payperiod<=h1.payperiod and h2.payperiod>=1/1/2010
and h1.employee=h2.employee
group by h1.employee, h1.payperiod
(我在SQL Server 2005)
我對自連接感到困惑。有必要嗎? – FrustratedWithFormsDesigner 2010-08-13 19:55:48
@Greg:看起來每個Emp + Date都是針對YTD的每個PP的總運行總數。這就是爲什麼馬克在2月28日是21,因爲該PP沒有條目。正確? – 2010-08-13 20:06:46
@ p.campbell:是的,正好 – Greg 2010-08-13 20:14:40