0

我在 2 个表中有 2 个字段。即。status (status VARCHAR(80) CHARACTER SET LATIN CASESPECIFIC) 一个表有 1000 个状态,因为值为“成功”第二个表有 1 个状态值 = 成功和其他值,如“失败”。我想加入 2 个表并从第 2 个表(dw_status_id)中获取值

第一个表从头开始。COGIPF_RUNREPORT_test

STATUS    |  any_number
success   |    67
success   |    1
success   |    2
success   |    3
success   |    42
success   |    52
failure   |    45

第二张表 scratch.dw_job_status_dim_test

status   |dw_status_id
failure  |34      
success  |12
running  |45

结果 :-

Status    |  dw_status_id
success   |    12
success   |    12
success   |    12
success   |    12
success   |    12
success   |    12
failure   |    34

我正在使用的查询:-

sel b.dw_status_id from scratch.COGIPF_RUNREPORT_test a
join scratch.dw_job_status_dim_test b on trim(a.status)=trim(b.status)

实际结果=0

如果有人可以帮助实现这一目标,那就太好了

谢谢

4

2 回答 2

2

您只需要从头开始选择状态。COGIPF_RUNREPORT_test 和从头开始的 dw_status_id.dw_job_status_dim_test。您必须检查两个表的状态是否等于成功。

所以我自己尝试了这个,也许它有帮助:

select distinct scratch.COGIPF_RUNREPORT_test.status, dw_status_id 
from scratch.COGIPF_RUNREPORT_test, scratch.dw_job_status_dim_test 
where scratch.COGIPF_RUNREPORT_test.status = scratch.dw_job_status_dim_test.status
于 2018-03-08T08:22:15.597 回答
0

这些是第一个表中的 3 条记录:-

按时间按日期发货指标-superrush 0 0 0 0 2018-03-07 01:40:08 2018-03-07 00:00:00 2018-03-07 01:41:46.917000 1.64101666667 成功

实验室 - 延迟发货详细信息 0 0 0 0 2018-03-07 01:40:08 2018-03-07 00:00:00 2018-03-07 01:40:44.950000 0.6078 成功

运输升级-tp/wpd/mypub 0 0 0 0 2018-03-07 01:40:09 2018-03-07 00:00:00 2018-03-07 01:40:25.028000 0.2674 成功

这些是来自第二张表的一些记录

dw_status_id 状态描述 success_indicator

10 运行 运行 0

11 停止 停止 0

12 成功 成功 1

我已经尝试了你的 2 个查询.. 两者都没有结果。理想情况下,它应该给出预期的结果。但不知何故,我们在 join 或 varchar 特定情况下犯了错误..如果您有更多想法我在哪里做错了,请告诉我

于 2018-03-08T08:30:11.187 回答