0
地域と夏の節約に基づいてオフセットを計算する必要があります。これは5つの日付フィールドで行う必要があります。したがって、LEFT JOIN関数を作成し、日付フィールドをパラメータとして提供すると、パフォーマンスの面で優れていますか?与えられた日付のオフセット値を効率的に取得する方法
コードサンプル:あなたはスカラー関数を作成する場合は
SELECT
ModifiedDate = DATEADD (hh,ISNULL(DateModified.DateDateOffsetNumber, 0),T.ModifiedDate)
,CreatedDate = DATEADD (hh,ISNULL(DateCreated.DateDateOffsetNumber, 0),T.CreatedDate)
,ReceivedDateTime = DATEADD (hh,ISNULL(DateReceived.DateDateOffsetNumber, 0),T.ReceivedDateTime)
,ResolvedDate = DATEADD (hh,ISNULL(DateResolved.DateDateOffsetNumber, 0),T.ResolvedDate)
,ReactivatedDateTime = DATEADD (hh,ISNULL(DateReactivated.DateDateOffsetNumber, 0),T.ReactivatedDateTime)
FROM TableA T
LEFT OUTER JOIN DateOffset DateModified ON T.ModifiedDate BETWEEN DateModified.DateStartDate AND DateModified.DateEndDate
LEFT OUTER JOIN DateOffset DateCreated ON T.CreatedDate BETWEEN DateCreated.DateStartDate AND DateCreated.DateEndDate
LEFT OUTER JOIN DateOffset DateReceived ON T.ReceivedDateTime BETWEEN DateReceived.DateStartDate AND DateReceived.DateEndDate
LEFT OUTER JOIN DateOffset DateResolved ON T.ResolvedDate BETWEEN DateResolved.DateStartDate AND DateResolved.DateEndDate
LEFT OUTER JOIN DateOffset DateReactivated ON T.ReactivatedDateTime BETWEEN DateReactivated.DateStartDate AND DateReactivated.DateEndDate
このクエリは、どんな意味がありません。 DateReceivedを参照していますが、そのテーブルまたはエイリアスはここにはありません。ここでは別名DateResolvedを2回使用すると動作しません。それにかかわらず、関数は逆の効果を持ちます。 –
私は適切なエイリアスを提供しました –