【问题标题】:Add a few rows from one table to another according to criteria in the other table, and add a group code to each group根据另一个表中的条件从一个表中添加几行到另一个表中,并为每个组添加一个组代码
【发布时间】:2020-11-13 12:45:20
【问题描述】:

我是这个领域的新手,所以我很想得到帮助。 我更喜欢可以在 access 或 excel 中实现的答案。

我有两张表,第一张有具体行程的信息,这里是一个例子: example table1

第二个有其他行程的信息,这里是一个例子:example table2 ,两者都有以下列:1.tripid,2.time。

我想复制表 2 中的所有行程,这些行程是在表 1 中列出的行程一小时内完成的, 我希望每个组(表 1 中的行程及其一小时内的所有后续行程)都有一个共同的代码(在一个名为 group code 的新列中,每个组都有相同的代码)。

这是我希望它如何出现的示例:exsample result

谢谢

【问题讨论】:

  • 您能发布表格定义或您对表格的想法吗?
  • 使用 VBA 和 CurrentDb.Execute 构建和运行 INSERT SELECT 操作 SQL 以添加一批记录。 “新专栏”是什么意思?不应该有以编程方式常规添加字段的过程。
  • 样本数据和期望的结果真的很有帮助。

标签: sql excel ms-access


【解决方案1】:

作为“延续代码”,只需将 table1 中的三元组和时间连接起来。因此,这导致:

select t1.tripid, t1.time, t1.tripid & t1.time as group_code
from table1 as t1
union all
select t2.tripid, t2.time, 
       (select top 1 t1.tripid & t1.time
        from table1 as t1
        where t1.time <= t2.time and t1.time > dateadd("hour", -1, t2.time)
        order by t1.time desc
       ) as group_code
from table2 as t2

【讨论】:

  • 我试过了,还是不行,可能是因为我是在 Access 里做的。我更新了问题并附上了图片以供说明
  • @eli 。 . .这应该可以在 MS Access 中使用,尽管您可能需要将 time 转换为字符串才能使串联工作。
  • 你看到示例结果了吗,关于组代码
  • @eli 。 . .如果您需要任何帮助,您必须描述“不起作用”的含义。有错误吗?它会产生错误的结果吗?
  • 这是错误:查询表达式中的语法错误(select top (1) t1.tripid & t1.time from table1 as t1 where t1.time dateadd ("hour", -1, t2.time) 按 t1.time desc 排序)
猜你喜欢
  • 1970-01-01
  • 2023-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多