有一个表,存储每天的帐户数据.我想找出今天和昨天的数据有什么不同.表创建和INSERT语句的查询如下:
CREATE TABLE daily_account_data (id varchar(6), Name varchar (20), DS_DW_Id varchar(4), flag_1 varchar(5), flag_2 varchar(5), Insert_date date );
INSERT INTO daily_account_data VALUES('A01R11', 'Gene Graham', 'PT12', 'TRUE', 'FALSE', '2023-06-01');
INSERT INTO daily_account_data VALUES('A01R16', 'Molly Ringwald', 'PT15', 'TRUE', 'TRUE', '2023-06-01');
INSERT INTO daily_account_data VALUES('A01R19', 'John Doe', 'PT24', 'FALSE','TRUE', '2023-06-01');
INSERT INTO daily_account_data VALUES('A01R34', 'Jane Doe', 'PT26', 'TRUE', 'FALSE', '2023-06-01');
INSERT INTO daily_account_data VALUES('A01R11', 'Gene Wilder', 'PT12', 'TRUE', 'FALSE', '2023-06-02');
INSERT INTO daily_account_data VALUES('A01R16', 'Molly Ringwald', 'PT15', 'TRUE', 'TRUE', '2023-06-02');
INSERT INTO daily_account_data VALUES('A01R19', 'John Doe', 'PT24', 'TRUE', 'TRUE', '2023-06-02');
INSERT INTO daily_account_data VALUES('A01R34', 'Jane Doe', 'PT26', 'TRUE', 'FALSE', '2023-06-02');
我有一个查询来找出这两天的数据的差异.
SELECT id, name, DS_DW_Id, flag_1, flag_2 FROM daily_account_data WHERE Insert_date = '2023-06-02'
EXCEPT
SELECT id, name, DS_DW_Id, flag_1, flag_2 FROM daily_account_data WHERE Insert_date = '2023-06-01';
但是我不知道如何获取伪列中的数据.最后一列是更改的数据.在6月1日的数据中,ID A01R11的名字是吉恩·格雷厄姆,在2日的数据中是吉恩·怀尔德.伪列应显示"名称更改".
同样,对于id A01R19(John Doe),FLAG_1的值已更改为TRUE.伪列应该显示"FLAG_1 CHANGE".
输出应如下所示:
id | Name | DS_DW_Id | flag_1 | flag_2 | Data Change |
---|---|---|---|---|---|
A01R11 | Gene Wilder | PT12 | TRUE | FALSE | Name Change |
A01R19 | John Doe | PT24 | TRUE | TRUE | flag_1 Change |