8

SSDT で単純なデータ比較をしようとしていますが、少し難しいことが証明されています。

1 つのデータベースに、比較したい 2 つのテーブルがあります。

これらのテーブルのスキーマは同じで、テーブル名が異なるだけです。そして、このツールが両方のデータを比較する良い方法を提供してくれるかどうかを確認したいだけです.

いえ

tblOutput
tblOutput_210314

しかし、この 2 つのテーブルを選択して、単一のデータベースで互いに比較する方法はわかりません。

ソース データベースとターゲット データベースの両方に存在するテーブル名しか選択できないようです。ソース データベースとターゲット データベースは同じなので、基本的にテーブルをそれ自体と比較していますか?

Data Compare でこれを達成する方法を知っている人はいますか?

  • ビジュアル スタジオ 2012
  • SQL Server データ ツール
  • データ比較
4

3 に答える 3

8

データ比較は、スキーマが一致する 2 つの異なるデータベースの比較のみをサポートします。残念ながら、Data Compare で探していることを行うことはできません。ヘルプ ドキュメントから:

要件

テーブルまたはビューのデータを比較する場合、ソース データベースのテーブルまたはビューは、ターゲット データベースのテーブルまたはビューといくつかの属性を共有する必要があります。次の基準を満たさないテーブルとビューは比較されず、新しいデータ比較ウィザードの 2 ページ目に表示されません。

  • テーブルには、互換性のあるデータ型を持つ一致する列名が必要です。
  • テーブル、ビュー、および所有者の名前は、大文字と小文字が区別されます。
  • テーブルには、同じ主キー、一意のインデックス、または一意の制約が必要です。
  • ビューには、同じ一意のクラスター化インデックスが必要です。
  • テーブルとビューを比較できるのは、名前が同じ場合のみです。
于 2014-03-06T17:09:22.260 に答える
1

ツールの制限に対する回避策。比較する必要がある共通の列を持つ 2 つのテーブルがある場合。解決策の 1 つは、データベースを複製してビューを比較することです。

この例では、CoffeeTableBooksDatabase というデータベースがあり、table_myBooks と table_aFriendsBooks という 2 つのテーブルがあり、比較する必要のある著者とタイトルが共通しています。

バックアップを使用してデータベースを複製し、復元を実行します。

  1. データベースのバックアップ (例: CoffeeTableBooksDatabase)
  2. 別の名前でデータベースを復元します (例: AnotherCoffeeTableBooksDatabase)

共通のビューを作成します。

  1. 両方のデータベースに同じ名前のビュー (例: view_SomeBooks) を作成します
  2. 元のデータベース (例: CoffeeTableBooksDatabase) で、最初のテーブル (例: table_myBooks) をビュー (例: view_SomeBooks) に追加し、両方のテーブルに共通のすべての列 (例: 著者とタイトル) を追加します。
  3. 複製データベース (例: AnotherCoffeeTableBooksDatabase) で、2 番目のテーブル (例: table_aFriendsBooks) をビュー (例: view_SomeBooks) に追加し、両方のテーブルに共通のすべての列 (例: 著者とタイトル) を追加します。

これで、ビューの比較を見るだけで両方のデータベースを比較できます。これは推奨される解決策ではありませんが、ツールとその現在の制限を使用して機能します。

于 2017-07-06T17:45:47.653 に答える
0

SSDT データ比較で同じ問題を抱えている別の人。できることの 1 つは、 を使用しSpreadsheet Compare 2013 programて Excel ワークブック シートの 2 つのテーブルを比較することです。

1) SQL Server テーブルのデータを、同じシート名を持つ 2 つの別々の Excel ワークブックに「シート 1」にダンプします。

2)スプレッドシート比較プログラムを実行し、ステップ 1 で作成した 2 つのワークブックへのファイルパスを入力します。

3) 結果のエクスポート オプションを使用します。差異は Excel にエクスポートされます。

NOTE: Each value change for each field will be a new record in the "Compare Export"

4) エクスポートされた結果 (Excel) に、テーブルのキー フィールドを含むフィールドを追加します。INDIRECT formulaこれは、Range Value 列の文字 ( EXPL: 'J7562' from 'J' to 'B' )を使用して置き換えました。完全な式は次のようになります。必要な他の重要なフィールドについては、これを数回行う必要がありました。

--Key Value from the dataset, [PlanDimensionKey]
(E2) ="'" & INDIRECT("'[JET upload LAST change.xlsx]dbo.OperatingPlan (import)'" & "!H" & RIGHT(B2,4)) & "'" 

--Key Value from the dataset, [Division]
(F2) =INDIRECT("'[JET upload LAST change.xlsx]dbo.OperatingPlan (import)'" & "!C" & RIGHT(B2,4))

--Key Value from the dataset, [PeriodKey]
(G2) ="'" & INDIRECT("'[JET upload LAST change.xlsx]dbo.OperatingPlan (import)'" & "!I" & RIGHT(B2,4)) & "'"

--Returns the FIELD LABEL for each value difference; typed in columnar ordinal position
(H2) =CHOOSE(COLUMN(INDIRECT(LEFT(B11,1)&"1")),
"ProductCode", "Concept", "DivisionKey", "PlanYear", "PlanVersion", "Year", "Period", "PlanDimensionKey", "PeriodKey", "NetSales", "Volume", "SalesCost", "GrossMargin")

5) 次に、テキスト エディター (NotePad++) を使用してテーブル データを貼り付け、SQL UPDATE ステートメントを記述します。

  • NOTEPAD++ でタブをコンマ\tに置き換えます... に置き換えます,
  • NOTEPADD++ の各レコードに値の括弧を追加\r\nします... で置き換えます)\r\n,(

これまでに行った中で最も簡単なことではありませんが、データを比較して SQL の変更を書き込むための便利な方法です。この方法で 504 値をかなり簡単に変更できました。 Changes:= 7 SKU * 3 Columns * 12 Months * 2 divisions = 504 changes. VS SSDT がスキーマの違いでテーブルを比較できないのは残念です。

--スプレッドシート比較 2013 のエクスポート結果にキー フィールドを追加--

+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| A     | B                    | C                    | D                      | E                | F        | G         | H           |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| Range | Old Value            | New Value            | Description            | PlanDimensionKey | Division | PeriodKey | VALUE FIELD |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7562 | '1949.26'            | '105627.74'          | Entered Value Changed. | '8351-US FOODS'  | 1        | '2019-01' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7563 | '2023.39'            | '133624.49'          | Entered Value Changed. | '8351-US FOODS'  | 1        | '2019-02' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7564 | '2380.1799999999998' | '76481.8'            | Entered Value Changed. | '8351-US FOODS'  | 1        | '2019-03' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7565 | '2880.91'            | '76563.55'           | Entered Value Changed. | '8351-US FOODS'  | 1        | '2019-04' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7566 | '2797.08'            | '92416.79'           | Entered Value Changed. | '8351-US FOODS'  | 1        | '2019-05' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7567 | '2432.5700000000002' | '91324.19'           | Entered Value Changed. | '8351-US FOODS'  | 1        | '2019-06' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7568 | '3095.74'            | '100132.53'          | Entered Value Changed. | '8351-US FOODS'  | 1        | '2019-07' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7569 | '3613.07'            | '136506.1'           | Entered Value Changed. | '8351-US FOODS'  | 1        | '2019-08' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7570 | '2146.5700000000002' | '115062.45'          | Entered Value Changed. | '8351-US FOODS'  | 1        | '2019-09' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7571 | '2522.0500000000002' | '121164.3'           | Entered Value Changed. | '8351-US FOODS'  | 1        | '2019-10' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7572 | '2690.11'            | '135402.20000000001' | Entered Value Changed. | '8351-US FOODS'  | 1        | '2019-11' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7573 | '2180.79'            | '107210.08'          | Entered Value Changed. | '8351-US FOODS'  | 1        | '2019-12' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7574 | '1949.26'            | '105627.74'          | Entered Value Changed. | '8351-US FOODS'  | 2        | '2019-01' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7575 | '2023.39'            | '133624.49'          | Entered Value Changed. | '8351-US FOODS'  | 2        | '2019-02' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7576 | '2380.1799999999998' | '76481.8'            | Entered Value Changed. | '8351-US FOODS'  | 2        | '2019-03' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7577 | '2880.91'            | '76563.55'           | Entered Value Changed. | '8351-US FOODS'  | 2        | '2019-04' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7578 | '2797.08'            | '92416.79'           | Entered Value Changed. | '8351-US FOODS'  | 2        | '2019-05' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7579 | '2432.5700000000002' | '91324.19'           | Entered Value Changed. | '8351-US FOODS'  | 2        | '2019-06' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7580 | '3095.74'            | '100132.53'          | Entered Value Changed. | '8351-US FOODS'  | 2        | '2019-07' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7581 | '3613.07'            | '136506.1'           | Entered Value Changed. | '8351-US FOODS'  | 2        | '2019-08' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7582 | '2146.5700000000002' | '115062.45'          | Entered Value Changed. | '8351-US FOODS'  | 2        | '2019-09' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7583 | '2522.0500000000002' | '121164.3'           | Entered Value Changed. | '8351-US FOODS'  | 2        | '2019-10' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7584 | '2690.11'            | '135402.20000000001' | Entered Value Changed. | '8351-US FOODS'  | 2        | '2019-11' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| J7585 | '2180.79'            | '107210.08'          | Entered Value Changed. | '8351-US FOODS'  | 2        | '2019-12' | NetSales    |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7610 | '37095.74'           | '113500.3'           | Entered Value Changed. | '8353-US FOODS'  | 1        | '2019-01' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7611 | '57068.24'           | '150427.1'           | Entered Value Changed. | '8353-US FOODS'  | 1        | '2019-02' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7612 | '42449.3'            | '101808.75'          | Entered Value Changed. | '8353-US FOODS'  | 1        | '2019-03' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7613 | '42025.86'           | '110008.72'          | Entered Value Changed. | '8353-US FOODS'  | 1        | '2019-04' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7614 | '51727.27'           | '125514.74'          | Entered Value Changed. | '8353-US FOODS'  | 1        | '2019-05' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7615 | '45501.57'           | '106330.64'          | Entered Value Changed. | '8353-US FOODS'  | 1        | '2019-06' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7616 | '48026.35'           | '117350.16'          | Entered Value Changed. | '8353-US FOODS'  | 1        | '2019-07' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7617 | '51493.51'           | '148743.64000000001' | Entered Value Changed. | '8353-US FOODS'  | 1        | '2019-08' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7618 | '40102.230000000003' | '124767.09'          | Entered Value Changed. | '8353-US FOODS'  | 1        | '2019-09' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7619 | '40849.61'           | '114226.42'          | Entered Value Changed. | '8353-US FOODS'  | 1        | '2019-10' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7620 | '50533.83'           | '155022.29'          | Entered Value Changed. | '8353-US FOODS'  | 1        | '2019-11' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7621 | '42731.83'           | '122845.71'          | Entered Value Changed. | '8353-US FOODS'  | 1        | '2019-12' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7622 | '37095.74'           | '113500.3'           | Entered Value Changed. | '8353-US FOODS'  | 2        | '2019-01' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7623 | '57068.24'           | '150427.1'           | Entered Value Changed. | '8353-US FOODS'  | 2        | '2019-02' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7624 | '42449.3'            | '101808.75'          | Entered Value Changed. | '8353-US FOODS'  | 2        | '2019-03' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7625 | '42025.86'           | '110008.72'          | Entered Value Changed. | '8353-US FOODS'  | 2        | '2019-04' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7626 | '51727.27'           | '125514.74'          | Entered Value Changed. | '8353-US FOODS'  | 2        | '2019-05' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7627 | '45501.57'           | '106330.64'          | Entered Value Changed. | '8353-US FOODS'  | 2        | '2019-06' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7628 | '48026.35'           | '117350.16'          | Entered Value Changed. | '8353-US FOODS'  | 2        | '2019-07' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7629 | '51493.51'           | '148743.64000000001' | Entered Value Changed. | '8353-US FOODS'  | 2        | '2019-08' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7630 | '40102.230000000003' | '124767.09'          | Entered Value Changed. | '8353-US FOODS'  | 2        | '2019-09' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7631 | '40849.61'           | '114226.42'          | Entered Value Changed. | '8353-US FOODS'  | 2        | '2019-10' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7632 | '50533.83'           | '155022.29'          | Entered Value Changed. | '8353-US FOODS'  | 2        | '2019-11' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+
| L7633 | '42731.83'           | '122845.71'          | Entered Value Changed. | '8353-US FOODS'  | 2        | '2019-12' | SalesCost   |
+-------+----------------------+----------------------+------------------------+------------------+----------+-----------+-------------+

--スプレッドシート比較の結果は、NOTEPADD++ を使用して SQL Update に書き込まれます--

USE TestingDb
GO

/*
--Create backup of data
insert into OperatingPlan_bak_20181001_1450 select * from OperatingPlan

--Restore backup of data
delete from OperatingPlan
insert into OperatingPlan select * from OperatingPlan_bak_20181001_1450
*/

-- (#1) Create TempTbl for storing the new values
DECLARE 
    @updateOperatingPlan_NetSales as table(
        --  [ProductCode] [nvarchar](12) NOT NULL
        --  ,[Concept] [nvarchar](40) NOT NULL
        [DivisionKey] [int] NOT NULL
        --  ,[PlanYear] [int] NOT NULL
        --  ,[PlanVersion] [int] NOT NULL
        --  ,[Year] [int] NOT NULL
        --  ,[Period] [nvarchar](6) NOT NULL
        ,[PlanDimensionKey] [nvarchar](62) NOT NULL
        ,[PeriodKey] [nvarchar](10) NOT NULL
        --  ,[Volume] [numeric](18, 2) NULL
        ,[NetSales_new] [numeric](18, 2) NULL
        -- ,[SalesCost_new] [numeric](18, 2) NULL
        -- ,[GrossMargin_new] [numeric](18, 2) NULL
    )
DECLARE 
    @updateOperatingPlan_SalesCost as table(
        [DivisionKey] [int] NOT NULL
        ,[PlanDimensionKey] [nvarchar](62) NOT NULL
        ,[PeriodKey] [nvarchar](10) NOT NULL
        ,[SalesCost_new] [numeric](18, 2) NULL
    ) 
DECLARE
    @updateOperatingPlan_GrossMargin as table(
        [GrossMargin_new] [numeric](18, 2) NULL
        ,[DivisionKey] [int] NOT NULL
        ,[PlanDimensionKey] [nvarchar](62) NOT NULL
        ,[PeriodKey] [nvarchar](10) NOT NULL
    )


-- (#2) Insert the new data records into TEMP TABLE
--NetSales_new
INSERT INTO @updateOperatingPlan_NetSales(  
    [NetSales_new] 
    ,[PlanDimensionKey] 
    ,[DivisionKey] 
    ,[PeriodKey] 
    )
    VALUES      --copied from NOTEPAD++ (text) Spreadsheet Compare 2013 (table)
        ('105627.74', '8351-US FOODS', 1, '2019-01')
        ,('133624.49', '8351-US FOODS', 1, '2019-02')
        ,('76481.8', '8351-US FOODS', 1, '2019-03')
        ,('76563.55', '8351-US FOODS', 1, '2019-04')
        ,('92416.79', '8351-US FOODS', 1, '2019-05')
        ,('91324.19', '8351-US FOODS', 1, '2019-06')
        ,('100132.53', '8351-US FOODS', 1, '2019-07')
        ,('136506.1', '8351-US FOODS', 1, '2019-08')
        ,('115062.45', '8351-US FOODS', 1, '2019-09')
        ,('121164.3', '8351-US FOODS', 1, '2019-10')
        ,('135402.20000000001', '8351-US FOODS', 1, '2019-11')
        ,('107210.08', '8351-US FOODS', 1, '2019-12')
        ,('105627.74', '8351-US FOODS', 2, '2019-01')
        ,('133624.49', '8351-US FOODS', 2, '2019-02')
        ,('76481.8', '8351-US FOODS', 2, '2019-03')
        ,('76563.55', '8351-US FOODS', 2, '2019-04')
        ,('92416.79', '8351-US FOODS', 2, '2019-05')
        ,('91324.19', '8351-US FOODS', 2, '2019-06')
        ,('100132.53', '8351-US FOODS', 2, '2019-07')
        ,('136506.1', '8351-US FOODS', 2, '2019-08')
        ,('115062.45', '8351-US FOODS', 2, '2019-09')
        ,('121164.3', '8351-US FOODS', 2, '2019-10')
        ,('135402.20000000001', '8351-US FOODS', 2, '2019-11')
        ,('107210.08', '8351-US FOODS', 2, '2019-12')
        ,('35923.31', '8352-US FOODS', 1, '2019-01')
        ,('53496.21', '8352-US FOODS', 1, '2019-02')
        ,('38034.83', '8352-US FOODS', 1, '2019-03')
        ,('37044.410000000003', '8352-US FOODS', 1, '2019-04')
        ,('46855.07', '8352-US FOODS', 1, '2019-05')
        ,('43004.52', '8352-US FOODS', 1, '2019-06')
        ,('45897.82', '8352-US FOODS', 1, '2019-07')
        ,('52093.120000000003', '8352-US FOODS', 1, '2019-08')
        ,('41391.46', '8352-US FOODS', 1, '2019-09')
        ,('42194.02', '8352-US FOODS', 1, '2019-10')
        ,('48761.78', '8352-US FOODS', 1, '2019-11')
        ,('42905.64', '8352-US FOODS', 1, '2019-12')

--SalesCost_new
INSERT INTO @updateOperatingPlan_SalesCost( 
    [SalesCost_new]
    ,[PlanDimensionKey]
    ,[DivisionKey] 
    ,[PeriodKey] 
    )
    VALUES      --copied from NOTEPAD++ (text) Spreadsheet Compare 2013 (table)
        ('108676.8', '8351-US FOODS', 1, '2019-01')
        ,('142074.69', '8351-US FOODS', 1, '2019-02')
        ,('85073.74', '8351-US FOODS', 1, '2019-03')
        ,('86439.09', '8351-US FOODS', 1, '2019-04')
        ,('101436.04', '8351-US FOODS', 1, '2019-05')
        ,('96085.38', '8351-US FOODS', 1, '2019-06')
        ,('104244.97', '8351-US FOODS', 1, '2019-07')
        ,('134166.29', '8351-US FOODS', 1, '2019-08')
        ,('110776.14', '8351-US FOODS', 1, '2019-09')
        ,('116436.68', '8351-US FOODS', 1, '2019-10')
        ,('139488.53', '8351-US FOODS', 1, '2019-11')
        ,('106055.85', '8351-US FOODS', 1, '2019-12')
        ,('108676.8', '8351-US FOODS', 2, '2019-01')
        ,('142074.69', '8351-US FOODS', 2, '2019-02')
        ,('85073.74', '8351-US FOODS', 2, '2019-03')
        ,('86439.09', '8351-US FOODS', 2, '2019-04')
        ,('101436.04', '8351-US FOODS', 2, '2019-05')
        ,('96085.38', '8351-US FOODS', 2, '2019-06')
        ,('104244.97', '8351-US FOODS', 2, '2019-07')
        ,('134166.29', '8351-US FOODS', 2, '2019-08')
        ,('110776.14', '8351-US FOODS', 2, '2019-09')
        ,('116436.68', '8351-US FOODS', 2, '2019-10')
        ,('139488.53', '8351-US FOODS', 2, '2019-11')
        ,('106055.85', '8351-US FOODS', 2, '2019-12')
        ,('37095.74', '8352-US FOODS', 1, '2019-01')
        ,('57068.24', '8352-US FOODS', 1, '2019-02')
        ,('42449.3', '8352-US FOODS', 1, '2019-03')
        ,('42025.86', '8352-US FOODS', 1, '2019-04')
        ,('51727.27', '8352-US FOODS', 1, '2019-05')
        ,('45501.57', '8352-US FOODS', 1, '2019-06')
        ,('48026.35', '8352-US FOODS', 1, '2019-07')
        ,('51493.51', '8352-US FOODS', 1, '2019-08')
        ,('40102.230000000003', '8352-US FOODS', 1, '2019-09')
        ,('40849.61', '8352-US FOODS', 1, '2019-10')
        ,('50533.83', '8352-US FOODS', 1, '2019-11')
        ,('42731.83', '8352-US FOODS', 1, '2019-12')

--GrossMargin_new
INSERT INTO @updateOperatingPlan_GrossMargin(   
    [GrossMargin_new] 
    ,[PlanDimensionKey] 
    ,[DivisionKey] 
    ,[PeriodKey] 
    )
    VALUES      --copied from NOTEPAD++ (text) Spreadsheet Compare 2013 (table)
        ('-3049.05', '8351-US FOODS', 1, '2019-01')
        ,('-8450.2000000000007', '8351-US FOODS', 1, '2019-02')
        ,('-8591.94', '8351-US FOODS', 1, '2019-03')
        ,('-9875.5400000000009', '8351-US FOODS', 1, '2019-04')
        ,('-9019.25', '8351-US FOODS', 1, '2019-05')
        ,('-4761.1899999999996', '8351-US FOODS', 1, '2019-06')
        ,('-4112.4399999999996', '8351-US FOODS', 1, '2019-07')
        ,('2339.8000000000002', '8351-US FOODS', 1, '2019-08')
        ,('4286.3100000000004', '8351-US FOODS', 1, '2019-09')
        ,('4727.63', '8351-US FOODS', 1, '2019-10')
        ,('-4086.33', '8351-US FOODS', 1, '2019-11')
        ,('1154.23', '8351-US FOODS', 1, '2019-12')
        ,('-3049.05', '8351-US FOODS', 2, '2019-01')
        ,('-8450.2000000000007', '8351-US FOODS', 2, '2019-02')
        ,('-8591.94', '8351-US FOODS', 2, '2019-03')
        ,('-9875.5400000000009', '8351-US FOODS', 2, '2019-04')
        ,('-9019.25', '8351-US FOODS', 2, '2019-05')
        ,('-4761.1899999999996', '8351-US FOODS', 2, '2019-06')
        ,('-4112.4399999999996', '8351-US FOODS', 2, '2019-07')
        ,('2339.8000000000002', '8351-US FOODS', 2, '2019-08')
        ,('4286.3100000000004', '8351-US FOODS', 2, '2019-09')
        ,('4727.63', '8351-US FOODS', 2, '2019-10')
        ,('-4086.33', '8351-US FOODS', 2, '2019-11')
        ,('1154.23', '8351-US FOODS', 2, '2019-12')
        ,('-1172.43', '8352-US FOODS', 1, '2019-01')
        ,('-3572.03', '8352-US FOODS', 1, '2019-02')
        ,('-4414.4799999999996', '8352-US FOODS', 1, '2019-03')
        ,('-4981.45', '8352-US FOODS', 1, '2019-04')
        ,('-4872.2', '8352-US FOODS', 1, '2019-05')
        ,('-2497.0500000000002', '8352-US FOODS', 1, '2019-06')
        ,('-2128.5300000000002', '8352-US FOODS', 1, '2019-07')
        ,('599.6', '8352-US FOODS', 1, '2019-08')
        ,('1289.23', '8352-US FOODS', 1, '2019-09')
        ,('1344.41', '8352-US FOODS', 1, '2019-10')
        ,('-1772.05', '8352-US FOODS', 1, '2019-11')
        ,('173.8', '8352-US FOODS', 1, '2019-12')

;WITH cteOperatingPlanUpdates as 
(
    SELECT 
        t1.PlanDimensionKey
        ,t1.DivisionKey
        ,t1.PeriodKey
        ,t1.NetSales_new
        ,t2.SalesCost_new
        ,t3.GrossMargin_new
    FROM 
        @updateOperatingPlan_NetSales t1
        LEFT OUTER JOIN @updateOperatingPlan_SalesCost t2 
            ON t1.PlanDimensionKey = t2.PlanDimensionKey 
                AND t1.DivisionKey = t2.DivisionKey 
                AND t1.PeriodKey = t2.PeriodKey
        LEFT OUTER JOIN @updateOperatingPlan_GrossMargin t3
            ON t1.PlanDimensionKey = t3.PlanDimensionKey 
                AND t1.DivisionKey = t3.DivisionKey 
                AND t1.PeriodKey = t3.PeriodKey
)

--select * from cteOperatingPlanUpdates

--/*
-- (#3) Update TargetTbl values with TempTbl values 
UPDATE [dbo].[OperatingPlan]
    SET 
        [NetSales] = source.NetSales_new
        ,[SalesCost] = source.SalesCost_new
        ,[GrossMargin] = source.GrossMargin_new

    FROM cteOperatingPlanUpdates source
    WHERE 
        OperatingPlan.[PlanDimensionKey] = source.PlanDimensionKey
        AND OperatingPlan.[DivisionKey] = source.DivisionKey
        AND OperatingPlan.[PeriodKey] = source.PeriodKey
GO
--*/
于 2018-10-01T22:01:07.810 に答える