多个位置参考位置维度
Multiple location to reference location dimension
我正在尝试映射与我的位置维度关联的值 - 维度如下所示:
LocationID
Country
State
City
Zip Code
Longitude
Latitude
1
USA
NY
Manhattan
2
USA
NY
Yonkers
3
USA
NY
Buffalo
我正在接收交易数据,其中多个区域可能被识别为一个值。例如,我将获得城市的价值:Yonkers/Manhattan 和 Manhattan/Yonkers.
交易数据示例:
TransID
From City
To City
1
Yonkers/Manhattan
Manhattan/Yonkers
2
Manhattan/Yonkers
Yonkers/Buffalo
规则是'From City'中的第一个城市链接到位置维度时应该使用最后一个城市[=31] =] 在 'To City' 链接到位置维度时应该使用。最后的结果应该是这样的:
TransID
From City ID
To City ID
1
2
2
2
1
3
如果能提供任何帮助,我将不胜感激。
我尝试通过在维度 table 和事务 table 上使用内部联接获得了所需的结果。在 ON 条件下使用子字符串连接第一个城市和最后一个城市。
查询:
select distinct loc.TransID, dim_FC.LocationID as from_city_id, dim_LC.LocationID as to_city_id from trans_location loc
INNER JOIN dim_location dim_FC ON dim_FC.City = substring(loc.[From City], 1, charindex('/',loc.[From City])-1)
INNER JOIN dim_location dim_LC ON dim_LC.City = reverse(substring(reverse(loc.[To City]),1,charindex('/',REVERSE(loc.[To City]))-1))
order by loc.TransID
我正在尝试映射与我的位置维度关联的值 - 维度如下所示:
LocationID | Country | State | City | Zip Code | Longitude | Latitude |
---|---|---|---|---|---|---|
1 | USA | NY | Manhattan | |||
2 | USA | NY | Yonkers | |||
3 | USA | NY | Buffalo |
我正在接收交易数据,其中多个区域可能被识别为一个值。例如,我将获得城市的价值:Yonkers/Manhattan 和 Manhattan/Yonkers.
交易数据示例:
TransID | From City | To City |
---|---|---|
1 | Yonkers/Manhattan | Manhattan/Yonkers |
2 | Manhattan/Yonkers | Yonkers/Buffalo |
规则是'From City'中的第一个城市链接到位置维度时应该使用最后一个城市[=31] =] 在 'To City' 链接到位置维度时应该使用。最后的结果应该是这样的:
TransID | From City ID | To City ID |
---|---|---|
1 | 2 | 2 |
2 | 1 | 3 |
如果能提供任何帮助,我将不胜感激。
我尝试通过在维度 table 和事务 table 上使用内部联接获得了所需的结果。在 ON 条件下使用子字符串连接第一个城市和最后一个城市。
查询:
select distinct loc.TransID, dim_FC.LocationID as from_city_id, dim_LC.LocationID as to_city_id from trans_location loc
INNER JOIN dim_location dim_FC ON dim_FC.City = substring(loc.[From City], 1, charindex('/',loc.[From City])-1)
INNER JOIN dim_location dim_LC ON dim_LC.City = reverse(substring(reverse(loc.[To City]),1,charindex('/',REVERSE(loc.[To City]))-1))
order by loc.TransID