我有一个包含水监测位置信息的点特征层。这包括一个唯一的位置ID、记录值的上限和下限以及(我想要的)该位置的当前值。(表1)< / P > < P > < >强表1:< /强> < / P > <表边界= " 1 "宽=“100%”> < TBODY > < TR > < TD宽度=“20%”高度=“24 px”> Gid < / TD > < TD宽度=“20%”高度=“24 px”> Location_ID < / TD > < TD宽度=“20%”高度=“24 px”> Upper_Limit_m < / TD > < TD宽度=“20%”高度=“24 px”> Lower_Limit_m < / TD > < TD宽度=“20%”高度=“24 px”> Current_Value_m < / TD > < / TR > < TR > < TD宽度=“20%”高度=“39 px”> 1 < / TD > < TD宽度=“20%”高度=“39 px”> < P > 1 GW < / P > < / TD > < TD宽度=“20%”高度=“39 px”> 880 < P > < / P > < / TD > < TD宽度=“20%”高度=“39 px”> 850 < / TD > < TD宽度=“20%”高度= " 39 px”>,< / TD > < / TR > < TR > < TD宽度= =“39 px”>“20%”高度2 < / TD > < TD宽度=“20%”高度=“39 px”> < P > 2 GW < / P > < / TD > < TD宽度=“20%”高度=“39 px”> 886 < / TD > < TD宽度=“20%”高度=“39 px”> 856 < / TD > < TD宽度=“20%”高度=“39 px”>,< / TD > < / TR > < TR > < TD宽度=“20%”高度=“39 px”> 3 < / TD > < TD宽度=“20%”高度=“39 px”> < P > GW 3 < / P > < / TD > < TD宽度=“20%”高度=“39 px”> 884 < / TD > < TD宽度=“20%”高度=“39 px”> 854 < / TD > < TD宽度=“20%”高度=“39 px”>,< / TD > < / TR > < / TBODY > < /表> < P >, < / P > < P >我也有一个表,其中包含在上面列出的那些位置记录值的历史记录。(表2)< / P > < P > < >强表2:< /强> < / P > <表边界= " 1 "宽=“100%”> < TBODY > < TR > < TD宽度=“33.333333333333336%”高度=“24 px”> Location_ID < / TD > < TD宽度=“33.333333333333336%”高度=“24 px”>日期< / TD > < TD宽度=“33.333333333333336%”高度=“24 px”> Recorded_Value < / TD > < / TR > < TR > < TD宽度=“33.333333333333336%”高度=“39 px”> < P > 1 GW < / P > < / TD > < TD宽度=“33.333333333333336%”高度=“39 px”> < P > 01/06/2021 < / P > < / TD > < TD宽度=“33.333333333333336%”高度=“39 px”> < P > 867.3 < / P > < / TD > < / TR > < TR > < TD高度="39px">
GW 2
GW 3
GW 1
我能够在这两个表之间创建一个使用Location_ID作为主键的关系,使用一对多的基数。
我想要实现的是“连接”表2的Recorded_Value列中的最新值到表1中的每个唯一监控位置(Location_ID)的Current_Value列中。此外,我需要确保Recorded_Value(来自表2)在上限和下限(来自表1)之内。
我认为我可能能够使用定义查询(特别是使用SQL)来实现这一点。
这可能吗?如果是这样,在定义查询中使用相关表中的值的语法是什么? Or is there an alternative way that I can achieve this?
我有一个包含水监测位置信息的点特征层。这包括一个唯一的位置ID、记录值的上限和下限以及(我想要的)该位置的当前值。(表1)< / P > < P > < >强表1:< /强> < / P > <表边界= " 1 "宽=“100%”> < TBODY > < TR > < TD宽度=“20%”高度=“24 px”> Gid < / TD > < TD宽度=“20%”高度=“24 px”> Location_ID < / TD > < TD宽度=“20%”高度=“24 px”> Upper_Limit_m < / TD > < TD宽度=“20%”高度=“24 px”> Lower_Limit_m < / TD > < TD宽度=“20%”高度=“24 px”> Current_Value_m < / TD > < / TR > < TR > < TD宽度=“20%”高度=“39 px”> 1 < / TD > < TD宽度=“20%”高度=“39 px”> < P > 1 GW < / P > < / TD > < TD宽度=“20%”高度=“39 px”> 880 < P > < / P > < / TD > < TD宽度=“20%”高度=“39 px”> 850 < / TD > < TD宽度=“20%”高度= " 39 px”>,< / TD > < / TR > < TR > < TD宽度= =“39 px”>“20%”高度2 < / TD > < TD宽度=“20%”高度=“39 px”> < P > 2 GW < / P > < / TD > < TD宽度=“20%”高度=“39 px”> 886 < / TD > < TD宽度=“20%”高度=“39 px”> 856 < / TD > < TD宽度=“20%”高度=“39 px”>,< / TD > < / TR > < TR > < TD宽度=“20%”高度=“39 px”> 3 < / TD > < TD宽度=“20%”高度=“39 px”> < P > GW 3 < / P > < / TD > < TD宽度=“20%”高度=“39 px”> 884 < / TD > < TD宽度=“20%”高度=“39 px”> 854 < / TD > < TD宽度=“20%”高度=“39 px”>,< / TD > < / TR > < / TBODY > < /表> < P >, < / P > < P >我也有一个表,其中包含在上面列出的那些位置记录值的历史记录。(表2)< / P > < P > < >强表2:< /强> < / P > <表边界= " 1 "宽=“100%”> < TBODY > < TR > < TD宽度=“33.333333333333336%”高度=“24 px”> Location_ID < / TD > < TD宽度=“33.333333333333336%”高度=“24 px”>日期< / TD > < TD宽度=“33.333333333333336%”高度=“24 px”> Recorded_Value < / TD > < / TR > < TR > < TD宽度=“33.333333333333336%”高度=“39 px”> < P > 1 GW < / P > < / TD > < TD宽度=“33.333333333333336%”高度=“39 px”> < P > 01/06/2021 < / P > < / TD > < TD宽度=“33.333333333333336%”高度=“39 px”> < P > 867.3 < / P > < / TD > < / TR > < TR > < TD高度="39px">
GW 2
GW 3
GW 1
我能够在这两个表之间创建一个使用Location_ID作为主键的关系,使用一对多的基数。
我想要实现的是“连接”表2的Recorded_Value列中的最新值到表1中的每个唯一监控位置(Location_ID)的Current_Value列中。此外,我需要确保Recorded_Value(来自表2)在上限和下限(来自表1)之内。
我认为我可能能够使用定义查询(特别是使用SQL)来实现这一点。
这可能吗?如果是这样,在定义查询中使用相关表中的值的语法是什么? Or is there an alternative way that I can achieve this?
有几种可能性,这取决于你正在使用什么
如果你有一个企业地理数据库,显示最新的记录是非常容易的:创建一个查询层(存储在地图文档中)或一个数据库视图(存储在数据库中)使用以下SQL:
这两个工具都可以在数据管理工具箱的工具集“图层和表视图”中找到。
如果你在ArcGIS Pro中工作,你可以使用属性规则。
https://pro.arcgis.com/en/pro-app/2.7/help/data/geodatabases/overview/an-overview-of-attribute-rules.htm
If none of that works for you, you can use a Python script, but you'd have to manually run it every time you insert new records.