2017-12-21 16 views
0

これはSQL Server 2008で動作するように書き直す必要があるコードです。LAGウィンドウ機能を使用しているため、以下のコードはSQL Server 2012以降で動作します。SQL Server 2008のコードを書き直す必要があります

誰もが私にこれを助けることができますか?

LAG(AccountKey) OVER(ORDER BY AccountKey) AS PREC 

私は、私はいくつかの詳細

Click on this line to see a screenshot of table with data that the code I sent solves. But I need to rewrite the LAG Function to work with SQL 2008

SELECT AccountKey, 
     LineName, 
     AccountName, 
     GroupKey, 
     AccountNumber, 
     ParentAccountKey 
INTO tempAccount 
FROM 
(
    SELECT AccountKey, 
      LineName, 
      AccountName, 
      GroupKey, 
      AccountNumber, 
      AccountKey AS ParentAccountKey, 
      LAG(AccountKey) OVER(ORDER BY AccountKey) AS PREC 
    FROM tempTable2 
    WHERE GroupKey IS NULL 
    UNION ALL 
    SELECT A.AccountKey, 
      A.LineName, 
      A.AccountName, 
      A.GroupKey, 
      A.AccountNumber, 
      B.AccountKey AS ParentAccountKey, 
      B.PREC 
    FROM tempTable2 A 
     INNER JOIN 
    (
     SELECT AccountKey, 
       LineName, 
       AccountName, 
       GroupKey, 
       AccountNumber, 
       AccountKey AS ParentAccountKey, 
       LAG(AccountKey) OVER(ORDER BY AccountKey) AS PREC 
     FROM tempTable2 
     WHERE GroupKey IS NULL 
    ) B ON A.AccountKey < B.AccountKey 
      AND (B.PREC IS NULL 
       OR B.PREC < A.AccountKey) 
    WHERE A.GroupKey IS NOT NULL 
      AND B.GroupKey IS NULL 
) X 
ORDER BY AccountKey; 
+0

私たちにコードを表示してください:-) –

+0

タイトルには、少なくとも問題の内容が書かれています。質問に答えると、同じ問題を抱える人々が解決策を見つけるのに役立ちます。 –

+2

投稿を「回答」と編集しましたが(承認待ちですが)、画像はSQLクエリには役立ちません。 DDLと** consumable **のサンプルデータと期待される結果セットを提供する必要があります。 SQL Serverはイメージを照会または相互作用できません。 – Larnu

答えて

1

我々は唯一の単一の列の詳細を持っているように私たちは、ここでは全体像を持っていませんでしたを追加する必要があると思いますしかし、これはあなたがする必要がある場所を取得する必要があります。

WITH CTE AS (
    SELECT YourColumns, 
      ROW_NUMBER() OVER (ORDER BY AccountKey) AS RN 
    FROM YoutTable) 
SELECT YourColumns 
     C2.AccountKey 
FROM CTE C1 
    LEFT JOIN CTE C2 ON C1.RN = C2.RN + 1; 
+0

私のコードがなぜ削除されたのかわかりません。私は再びそれを追加しようとします –

+0

@GeirForsmoあなたが編集した後に承認された保留中の編集があるように見えます。 – Larnu

+0

コードを追加するのに成功しました。間違いをおかけして申し訳ありません。私は多くのstackoverflowを使用していない –

関連する問題