私はそれの下の1行と1行の差を計算し、結果をxmlにする必要があるテーブルを持っています。それは毎日の仕事なので、私はそれが再帰的な仕事の一種である必要があります。私の現在のテーブルのSQL Server 2008のLead()およびLag()関数でAlternateを使用する方法はありますか?
構造は以下の通りです:
CREATE TABLE #Temp
(
, CurrentDateTime DateTime
, ID INT
, ThisYearToDateTotal INT
, ThisYearToDateCBT INT
, ThisYearToDateManual INT
, ThisYearToDateScanned INT
, InProcess INT
, InputRequired INT
)`
:以下のように
SELECT
Today_CurrentDateTime
, Today_Total
, Today_CBT
, Today_Manual
, Today_Scanned
, Today_InProcess
, Today_InputRequired
, Yesterday_Total
, Yesterday_CBT
, Yesterday_Manual
, Yesterday_Scanned
, Yesterday_InProcess
, Yesterday_InputRequired
, (TD.Today_Total - YD.Yesterday_Total) AS Diff_in_Total
, (TD.Today_CBT - YD.Yesterday_CBT) AS Diff_in_CBT
, (TD.Today_Manual - YD.Yesterday_Manual) AS Diff_in_Manual
, (TD.Today_Scanned - YD.Yesterday_Scanned) AS Diff_in_Scanned
, (TD.Today_InProcess - YD.Yesterday_InProcess) AS Diff_in_InProcess
, (TD.Today_InputRequired - YD.Yesterday_InputRequired) AS Diff_in_InputRequired
FROM #YesterdayData AS YD
INNER JOIN #TodayData AS TD ON TD.Today_ID = YD.Yesterday_ID
と出力を取得します
ここでは、別の固定テーブルを作成できないという制限があります。そのため、毎日の差分を計算することができないのです1週間で
ヘルプ
は、このブログのエントリを見てみましょう:https://blog.sqlauthority.com/2011/11/24/sql-server-solution-to-puzzle-simulate-lead-and-lag-without- using-sql-server-2012-analytic-function/ –
CTE with ROW_NUMBER()。あなたのデータのIDは何ですか?グループ化できる行ごとに個別の値がありますか?これらの列名はどこから取得していますか?あなたはすべてのコードを表示していません – scsimon
@RigertaDemiri IDはID列です。私は3つ以上の#Tempテーブルを作成し、異なる列名で名前を変更しました。 – Peter