我有以下表格:
表1
+----------+-----------+---------+------------+-------------+---------+
| dlr_code | dlr_yrmon | country | num_repair | num_vehicle | cost |
+----------+-----------+---------+------------+-------------+---------+
| J5631 | 201006 | USA | 10 | 10 | 1300.52 |
| 01031 | 201312 | KEN | 1 | 1 | 110.73 |
和
表2
+-------------+---------------------+-----------------------------------------+
| repair_date | country_repaired | repair_dealer |
+-------------+---------------------+-----------------------------------------+
| 30/06/2010 | UNITED STATES(USA) | PREIGE DUDIN(J5631) |
| 28/05/2010 | UNITED KINGDOM(GBR) | BROTRS , LILN(11126) |
我们的想法是按年,月,国家和经销商代码将表1合并/连接到表2表中,因此表2中将列出以下列:num_repair,num_vehicle,cost在表2中添加。
如果您需要更多信息,请告诉我们。任何帮助都会非常感激。
谢谢,mils
答案 0 :(得分:0)
试试这个:
select
from table1 t1 inner join
table2 t2
on t2.repair_dealer like concat('%',t1.dlr_code,'%')
and t1.dlr_yrmon = concat(DATEPART(yyyy,t2.repair_date), DATEPART(mm,t2.repair_date))
and t2.country_repaired like concat('%',t1.country,'%')
答案 1 :(得分:0)
在不知道平台的情况下,我只能在一个月内为您提供加入方式:
SELECT t2.*, num_vehicle, num_repair
FROM table_2 t2
LEFT JOIN table_1 t1 on
year(t2.repair_date) = substring(t1.dlr_yrmon,1,4)
AND month(t2.repair_date) = substring(t1.dlr_yrmon,5,2)
此技术可以扩展到您数据中的其他列,但我需要了解该平台,因此我知道在您的字符串中查找(
和)
的最佳方式。
答案 2 :(得分:0)
抱歉,我忘了提到我正在使用的SQL平台是RedShift(亚马逊)。
Jairaj,感谢您的回答,但我的平台不支持CONCAT功能。到目前为止,这就是我所拥有的:
选择不同的t2.vin 来自table1 t1内连接 pres_table2 t2 在REGEXP_SUBSTR(REGEXP_SUBSTR(t2.repair_dealer,' \([[:alnum:]] + \)+ $'),' [[:alnum:]] +') = t1.dlr_code AND SUBSTRING(t1.dlr_yrmon,1,4)|| ' - ' || SUBSTRING(t1.dlr_yrmon,5,6)= SUBSTRING(t2.repair_date,1,7) 限制10
感谢大家的帮助。