0

SQL DB には、Tableau で変更を見つけて表示するために比較したい 2 つのテーブルがあります。

オリジナルデータ

Column names:
ID, 
Category, 
Company, 
Description, 
Update frequency #, 
Time since last update [hours], 
Measurement (hours/min)

Original_Sample_data :

ACC-1-Nike, ACC, Nike, shoes with acc, 12, 3, hours

New_data 列名:

ID, 
Category, 
Company, 
Description, 
Update frequency #, 
Time since last update [hours],
Measurement (hours/min)

New_Sample_data :

ACC-1-Nike, ACC, Nike, shoes made of wood, 12, 3, hours

3 つの列を持つ新しいテーブルを作成しようとしています。

Column 1: Name of all the columns (to be compared)
Column 2: Original_Data_value
Column 3: New_Data_Value

私が達成したい出力

----------------------------------------------------
| Column Names    |   Org_Value     | New_Value    |
----------------------------------------------------
|   ID            | ACC-1-NIKE      | ACC-1-NIKE   |
----------------------------------------------------
|   Category      | ACC             | ACC          |
----------------------------------------------------
|   Description   | shoes with acc  | shoes made of wood|
----------------------------------------------------
| Update frequency| 12              | 12           |
----------------------------------------------------

元のデータと新しいデータの値が一致しない場所を新しいテーブルに表示したいと考えています。どうすればそれを達成できますか? 目的は、元の値と新しい値を比較して、元の値から新しい値への変化を識別できるようにすることです。

「Union all」と「Cross join」を使用しようとしていますが、提案は大歓迎です。

どうぞよろしくお願いいたします。

4

1 に答える 1

0

変更されたすべての元のタプルを見つけるには:

SELECT [columns you want to compare] FROM Original_data 
--FROM New_data - if you want the new data tuples
EXCEPT
(
SELECT [columns you want to compare] FROM Original_data 
INTERSECT 
SELECT [columns you want to compare] FROM New_data
)

これらのテーブルを結合し、列ごとに比較して「新しいデータ」を取得できます...

挨拶

于 2013-11-25T15:22:20.073 に答える