以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何取最后日期? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188750) |
-- 作者:lin98 -- 发布时间:2023/10/16 11:19:00 -- 如何取最后日期? 表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的数量大,上百万条记录,用这种方法会不会影响效率?
|
-- 作者:有点蓝 -- 发布时间:2023/10/16 11:25:00 -- 使用sql。比如 insert into 表B(料号,最后日期) select 料号,max(日期) from 表A group by 料号
|
-- 作者:淡月斜阳 -- 发布时间:2023/10/16 11:32:00 -- 表A与表B间,建立关联,父表:表B,子表:表A。关联字段:料号。 表B最后日期,用表达式列,引用子表数据,MAX(MAX(Child(关联).日期)) 这要求对应的表A子数据,都要加载过来,百万条记录,肯定会严重影响效率。 可采用,表B如果是仅统计,不填写,直接用sql语句生成就好了 如果需要填写,可以在表A添加新记录后,同步UPDATE更新表B的最后日期,如果这个最后日期经常会用到,这显然更有利于效率 |
-- 作者:lin98 -- 发布时间:2023/10/17 13:45:00 -- [此贴子已经被作者于2023/10/17 16:55:52编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/10/17 13:53:00 -- UPDATE {表BB} as b Set b.最后日期 = a.日期 from (select 料号,max(日期) as 日期 from {表AA} group by 料号) as a Where a.[料号] = b.[料号] |
-- 作者:lin98 -- 发布时间:2023/10/17 14:50:00 -- 语法错误 (操作符丢失) 在查询表达式 \'a.日期 From (Select 料号, max(日期) As 日期 From [表AA] Group By 料号) As a\' 中。 |
-- 作者:有点蓝 -- 发布时间:2023/10/17 15:00:00 -- 什么数据库? |
-- 作者:lin98 -- 发布时间:2023/10/17 15:06:00 -- ACCESS |
-- 作者:有点蓝 -- 发布时间:2023/10/17 15:11:00 -- UPDATE {表BB} as b , (select 料号,max(日期) as 日期 from {表AA} group by 料号) as a Set b.最后日期 = a.日期 Where a.[料号] = b.[料号] |
-- 作者:lin98 -- 发布时间:2023/10/17 15:51:00 -- .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2022.8.18.1 错误所在事件: 详细错误信息: 操作必须使用一个可更新的查询。
|