0

(いいタイトルが思いつかなかったのですみません)

ビューとして機能する次の select ステートメント (SQL Server) を作成しました。

SELECT DISTINCT 
       dbo.ECB.Currency + '-' + 
           CAST(dbo.ECB.Date AS varchar(30)) AS ComboDate, 
       dbo.ECB.Rate AS ECBrate 
FROM 
    dbo.ECB 
INNER JOIN
    dbo.MyTable ON dbo.ECB.Date = dbo.MyTable.CutoffDate 
                AND dbo.ECB.Currency = dbo.MyTable.MyCurrency

私の問題:

私が気付いたのは、 CutoffDate列に土曜日日曜日の日付がありますが、日付列にはありません。つまり、これらの日の料金はありません。ECB

Excel での計算を使用しているためCutoffDate、ビューで土曜日と日曜日の日付値を金曜日に「置換」したいと考えています。

この作業スニペットを見つけて、必要に応じて変更しました。

SELECT 
    DISTINCT
    CASE WHEN DATEPART(weekday, dbo.CutoffDate) IN (6, 7) 
         THEN DATEADD(d, -((DATEPART(weekday, dbo.CutoffDate) + 1 + @@DATEFIRST) % 7), dbo.CutoffDate) 
         ELSE dbo.CutoffDate
    END
FROM
    MyTable

今、私は両方の構造を組み合わせる方法を見つける必要があり、これがあなたが私を助けてくれることを望んでいるところです.

ビューに 2 番目の select ステートメントを追加したかったのですが、失敗しました。

ありがとうございました。

4

1 に答える 1

2

caseステートメントを結合に移動すると、機能するはずです。

変化する

dbo.MyTable ON dbo.ECB.Date = dbo.MyTable.CutoffDate

dbo.Mytable ON dbo.ECB.Date = case when datepart(weekday, dbo.CutoffDate) IN (6,7) 
    then dateadd(d, -((datepart(weekday, dbo.CutoffDate) + 1 + @@DATEFIRST) % 7), dbo.CutoffDate) 
    else dbo.CutoffDate 
end

お役に立てれば。

于 2013-02-20T14:14:39.070 に答える