我有,我輸入產品(SlobID),這是獲取產品的最新版本
SELECT TemplateID, SlobID, FromYear, ToYear, MAX(ValidFrom) AS CurrentDate
FROM CommissionsPerTemplate AS CommissionsPerTemplate_1
GROUP BY TemplateID, SlobID, FromYear, ToYear
HAVING (MAX(ValidFrom) <= GETDATE()) AND (TemplateID = 2) AND (SlobID = 743)
結果我得到的是
TemplateID SlobID (From Year) (To year) Valid date
2 743 1 1 2016-01-01
2 743 1 99 2015-01-01
2 743 2 99 2016-01-01
困難的部分是數據表我們需要查詢才能獲取此產品的最新版本。 第1版(1/1/2015)如果從一年= 1到一年= 99 但在(2016年1月1日),這創造了第二個版本分路器年 從今年1至1和第2年至99。
所以對我來說正確的結果應該是以下
TemplateID SlobID (From Year) (To year) Valid date
2 743 1 1 2016-01-01
2 743 2 99 2016-01-01
,但我對如何讓這個不知道。 也許在2017年1月1日,新版本應該有逐年= 1到一年= 10,從年= 11年= 99或別的東西。
我沒有看到任何*非常高級*在這裏。 – Parfait
我建議增加一個where子句 –
所以,你只是想擺脫1-99記錄?爲什麼?如果2-99的記錄真的是3-99呢?然後你錯過了2-2的跨度。那麼1-99記錄是否需要減少到一個具有「2015-01-01」日期的2-2? –