Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何为历史和当前数据生成数据?_Sql - Fatal编程技术网

Sql 如何为历史和当前数据生成数据?

Sql 如何为历史和当前数据生成数据?,sql,Sql,我需要从存储了scd的现有表生成一个报告 假设我有以下表格: 表1 | Pid | eff_dt | exp_dt | |-----|----------------------|----------------------| | 489 | 2018-11-02T05:27:12Z | 9999-12-31T23:59:59Z | | 546 | 2018-11-02T05:27:12Z | 2018-12-02T05:27:12Z |

我需要从存储了scd的现有表生成一个报告

假设我有以下表格:

表1

| Pid |               eff_dt |               exp_dt |
|-----|----------------------|----------------------|
| 489 | 2018-11-02T05:27:12Z | 9999-12-31T23:59:59Z |
| 546 | 2018-11-02T05:27:12Z | 2018-12-02T05:27:12Z |
| 546 | 2018-12-02T05:27:12Z | 9999-12-31T23:59:59Z |
表2

| Pid |  val |               eff_dt |               exp_dt |
|-----|------|----------------------|----------------------|
| 489 | JD7G | 2018-11-02T05:24:16Z | 2018-11-09T05:40:47Z |
| 489 |  JD7 | 2018-11-09T05:40:47Z | 9999-12-31T23:59:59Z |
| 546 | TR56 | 2018-11-09T05:40:47Z | 9999-12-31T23:59:59Z |
预期产出为:

| Pid |  val |               eff_dt |               exp_dt |
|-----|------|----------------------|----------------------|
| 489 | JD7G | 2018-11-02T05:27:12Z | 9999-12-31T23:59:59Z |
| 489 |  JD7 | 2018-11-02T05:27:12Z | 9999-12-31T23:59:59Z |
| 546 | TR56 | 2018-11-02T05:27:12Z | 2018-12-02T05:27:12Z |
| 546 | TR56 | 2018-12-02T05:27:12Z | 9999-12-31T23:59:59Z |

你的问题可以更具体一些。在
mysql
中,您可以通过任何方式运行以下简单脚本:

Select table1.Pid, table2.val, table1.eff_dt, table1.exp_dt 
From table1 Join table2 
On(table1.Pid=table2.Pid)

在你的帖子中,保持eff_dt&exp_dt的逻辑并不那么清楚。无论如何,我保留了表1中的两个值。(适用于您标记的大多数数据库;))

输出如下所示-

Pid val     eff_dt                      exp_dt
489 JD7     2018-11-02 05:27:12.049     9999-12-31 23:59:59.000
489 JD7G    2018-11-02 05:27:12.049     9999-12-31 23:59:59.000
546 TR56    2018-11-02 05:27:12.049     2018-12-02 05:27:12.049
546 TR56    2018-12-02 05:27:12.049     9999-12-31 23:59:59.000

您也可以在

中检查结果。请解释保留eff_日期和exp_日期的逻辑,并标记相应的数据库,而不是标记多个数据库。@GaneshDogiparthi。我删除了不一致的数据库标记。仅使用实际使用的数据库进行标记。
Pid val     eff_dt                      exp_dt
489 JD7     2018-11-02 05:27:12.049     9999-12-31 23:59:59.000
489 JD7G    2018-11-02 05:27:12.049     9999-12-31 23:59:59.000
546 TR56    2018-11-02 05:27:12.049     2018-12-02 05:27:12.049
546 TR56    2018-12-02 05:27:12.049     9999-12-31 23:59:59.000