表A: 料号、日期
F1 2023-5-3
F1 2023-6-30
F2 2023-03-20
F2 2023-9-30
效果如下
表B:料号、最后日期
F1 2023-6-30
F2 2023-9-30
问题一:表B如何实现取表A指定料号的最后日期?
问题二:如果表A的数量大,上百万条记录,用这种方法会不会影响效率?
使用sql。比如
insert into 表B(料号,最后日期) select 料号,max(日期) from 表A group by 料号
表A与表B间,建立关联,父表:表B,子表:表A。关联字段:料号。
表B最后日期,用表达式列,引用子表数据,MAX(MAX(Child(关联).日期))
这要求对应的表A子数据,都要加载过来,百万条记录,肯定会严重影响效率。
可采用,表B如果是仅统计,不填写,直接用sql语句生成就好了
如果需要填写,可以在表A添加新记录后,同步UPDATE更新表B的最后日期,如果这个最后日期经常会用到,这显然更有利于效率
UPDATE {表BB}, {表AA} Set {表BB}.最后日期 = {表AA}.日期(max(日期)) Where {表BB}.[料号] = {表AA}.[料号]
[此贴子已经被作者于2023/10/17 16:55:52编辑过]
UPDATE {表BB} as b Set b.最后日期 = a.日期 from (se
lect 料号,max(日期) as 日期 from
{表AA} group by 料号) as a Where a.[料号] = b.[料号]
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:
详细错误信息:
操作必须使用一个可更新的查询。