我有以下表格:
table1
+----------+-----------+---------+------------+-------------+---------+
| 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中将有以下列:表2中添加了num_repair、num_vehicle、cost。
如果你需要更多信息,请让我知道。任何帮助都会非常感谢。
谢谢,米尔斯
发布于 2016-01-30 03:00:00
试试这个:
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,'%')发布于 2016-01-30 03:02:32
在不知道平台的情况下,我只能告诉你如何在一年一个月加入:
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)这种技术可以扩展到数据中的其他列,但是我需要知道平台,这样我才能知道在字符串中查找(和)的最佳方法。
发布于 2016-02-01 22:22:15
对不起,我忘了提到我正在使用的SQL平台是亚马逊( RedShift )。
Jairaj,谢谢你的回答,但我的平台不支持CONCAT函数。到目前为止,我得到的是:
select distinct t2.vin from table1 t1 inner join pres_table2 t2 on 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) Limit 10
谢谢你的帮助。
https://stackoverflow.com/questions/35091624
复制相似问题