0

現在、次の情報がデータベースに存在しています。

ID-会社---現在の値----日付
1 --company1 ------- 12---------2010年3月25日
2--company1 ------- 17---------2011年3月25日
3---company2 ------- 65---------2011年4月23日
4---company1 ------- 45---------2012年3月25日
5 --company2 ------- 34---------2012年4月23日

フィールドを計算して、各社の前年の値を見つける方法はありますか?

ID-会社---現在の値---昨年の値----日付
1 --company1 ------- 12 ---------------- 0---------2010年3月25日
2 --company1 ------- 17 --------------- 12---------2011年3月25日
3---company2 ------- 65 ---------------- 0---------2011年4月23日
4 --company1 ------- 45 --------------- 17---------2012年3月25日
5 --company2 ------- 34 --------------- 65---------2012年4月23日

私はこのウェブサイトを検索することを含む多くの解決策を試しましたが、何もうまくいきませんでした。

4

1 に答える 1

0

あなたのテーブルは正確に1年離れた日付を持っているように見えるので、それはそれ自体を左に結合することによって簡単に行うことができます。

SELECT a.ID, 
    a.Company, 
    a.CurrentValue, 
    ISNULL(b.CurrentValue, 0) AS 'LastYearValue',
    a.Date
FROM dbo.Table a
LEFT JOIN dbo.Table b ON a.Company = b.Company AND b.Date = DATEADD(YEAR, -1, a.Date)
于 2012-06-12T19:26:16.697 に答える