0
編輯:意識到這些問題很多。嘗試一個子查詢並查看這些。只能檢查特定行的最大日期?
Edit2:只需要一個子查詢。現在工作。對於任何人的緣故別人在看這個,我加
where t2.startdate = (select max(startdate) from table2 as sub
where sub.item = t1.item)
and t1.effectivedate = (select max(startdate) from table2 as sub2)
我目前正在寫一個查詢拉從兩個單獨的表兩種速率,並返回這兩個利率之間的差額。我無法獲得適當的價格。我只需要獲取每個項目最近上市的費率。我的表中的數據是這樣的:
todate item rate
2014-01-15 pencil -0.07
2014-01-17 pencil -0.03
2014-02-22 pencil -0.05
2014-01-15 pen -0.013
2014-01-17 pen -0.02
2014-02-22 pen -0.032
我希望它返回(假設這兩個表是完全一樣的):
Item Rate1 Rate2 Difference Date
Pencil -0.05 -0.05 0 2014-02-22
Pen -0.032 -0.032 0 2014-02-22
兩個表都或多或少同樣的事情,只是以不同的價格。我的問題是我最終得到多個日期,無論我如何更改查詢。
我現在有這個權利:
use db
select t1.item, t2.Rate as t2Rate, t1.Rate as t1Rate,(abs(t2.Rate) - abs(t1.Rate))
as Dffrnce, t2.startDate
from table2 as t2 join table1 as t1
on t2.item = t1.item
where t2.StartDate = t1.EffectiveDate
group by t1.item, t2.StartDate, t2.Rate, t1.Rate
having t2.StartDate = max(t2.StartDate)
order by t1.item
我猜我的問題是制止從我不檢查每個項目的最高日專。但我不完全確定如何做到這一點。我嘗試使用不同的,但返回相同的結果。我錯過了明顯的東西嗎?我只想從最近的日期獲取利率。我試過加入的項目和最大日期,有聲明having max(t2.StartDate) = t1.effectivedate
但似乎沒有工作。
我正在使用SQL Management Studio 2012.一旦我找到時間,我會看看這個。謝天謝地,這隻需要運行一次(據我所知)。感謝您的建議! – PointXIV