我在2个表中有2个字段.ie。状态(状态VARCHAR(80)CHARACTER SET LATIN CASESPECIFIC) 一个表有1000个状态,因为价值是“成功”。 第二个表有1个status = success值和其他值,如' failure'。我想加入2个表并从第2个表(dw_status_id)中获取值
1ST TABLE scratch.COGIPF_RUNREPORT_test
STATUS | any_number
success | 67
success | 1
success | 2
success | 3
success | 42
success | 52
failure | 45
2nd table 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
如果有人能帮助实现这个目标,那将是非常好的
由于
答案 0 :(得分:2)
您只需从头开始选择状态.COGIPF_RUNREPORT_test和scratch.dw_job_status_dim_test中的dw_status_id。而且你必须检查两个表的状态是否等于成功。
所以我自己尝试过这个,也许有帮助:
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
答案 1 :(得分:0)
这是第一张表中的3条记录: -
按日期按时发货metrics-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成功
shipping upgrade-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运行RUNNING 0
11停止了STOPPED 0
12成功成功1
我已经尝试过你的2个查询..两个都没有给出任何结果。 理想情况下,它应该给出期望的结果。但不知怎的,我们在连接错误或varchar案件特定的情况下错误。如果您有更多的想法我在做错误,请告诉我