【发布时间】:2019-09-20 15:20:27
【问题描述】:
我有下表,这些表包含有关文件数和其他一些字段的信息。这是一个查找表或参考表。
我使用的oracle版本是Oracle Database 18c Enterprise E
id nm expected_num_files file_name_expr
1 CVS 3 cvs_d.*.zip
2 CVS 2 cvs_w.*.gz
3 Rite-aid 4 ra_d.*.gz
5 Walgreen 2 wal_d*.txt
我有一个审核表,其中包含收到的文件信息。这两个表都可以在 id 上连接
audit_id id file_nm
123 1 cvs_d1.zip
124 1 cvs_d2.zip
125 2 cvs_w1.gz
126 1 cvs_d3.zip
理想的情况是接收到所有文件。
理想结果 select id , count(*) from auditlog group by id
id count_files
1 3
2 2
3 4
5 2
审计表的当前结果 但在目前的情况下,我只收到了一些文件
id count_files
1 3
2 1
为了达到理想情况,我需要用空的 auditid 从查找表中填充最终表中的虚拟记录
我需要一个最终的输出表应该是这样的。
如果我执行查询select id , count(*) from auditlog group by id
在决赛桌上,我会得到上面突出显示的理想结果
audit_id id file_nm
123 1 cvs_d1.zip
124 1 cvs_d2.zip
126 1 cvs_d3.zip
-1 2 cvs_w.*.gz
125 2 cvs_w1.gz
-1 3 ra_d*.gz
-1 3 ra_d.*.gz
-1 3 ra_d.*.gz
-1 3 ra_d.*.gz
-1 5 wal_d*.txt
-1 5 wal_d*.txt
我们可以很容易地生成初始行,但是带有-1的行是根据列中未收到的文件数(未发送的文件数)生成的
解释最终表:因为我们在审计表中有 3 条记录为 id 1,所以我们在最终表中填充了它们,但是对于 id 2,我们在审计表中有一条记录,我们填充了该记录,而对于其他记录,我们填充了 - 1.
【问题讨论】:
-
file_name_expr 与 file_nm 不匹配。
-
我读了 3 遍,但我还是不明白你想做什么。请详细说明一下?
-
@Sens,我们可以聊聊吗?
-
@Achyuth 我现在只在应用程序上,我不知道它是否在那里工作。但是请
-
@Sens 你能查到问题知道吗