我有一个ODBC数据库,我已经链接到Access表。我一直在使用Access来生成一些自定义查询/报告。
但是,这个ODBC数据库经常更改,我试图发现差异的来源。 (要完成数十万条记录,但我可以很容易地将其过滤到我关注的内容中)
现在我每天都在手动提取数据,导出到Excel,计算我想要跟踪的每个类别的总计,并登录另一个Excel文件。
如果可能的话,我宁愿在Access中实现自动化,但是还没有能够听到我的声音。
我已经链接了我关注的ODBC数据库,并且可以生成我想要生成的查询。
我正在努力解决的问题是如何每天捕获这些数据,然后记录下这一数据,以便我可以在给定的时间段内对其进行趋势分析。
如果数据是恒定的,那么我很容易理解/做。但是,数据可能每天都在变化。
EX:这是工单的数据库。工单(基本上是我的主键)分配给不同的部门。单个工单可以属于许多不同的部门,并且具有与之关联的多个任务/保持/操作。
工作订单0237153-03今天可以分配到A部门,但明天可以重新分配到B部门。
这些工作单也有"排名代码"例如优先级A,B,C。这些也可以在任何给定时间更改。今天工作订单0237153-03可能是优先级A,但明天有人可能会认为它实际上应该是优先级B.
这就是为什么我想每天捕获所有可用数据(隔夜进入的新工作订单,以及可能对其进行更改的所有旧工作订单),计算不同字段的总数I& #39;关注,然后记录这些数据。
然后每天重复一次。
答案 0 :(得分:0)
您正在计算从数据库表中获取的项目。
可能您不需要每天实际计算它们,但如果数据库中的表存储了每天的所有数据,您只需创建一个查询来计算所有数据。表格中存储的每一天的表格。
你说得对,这是最好的。
您可能没有"记录另一个表中的计数"虽然。
您似乎是一个全新的访问权限,因此您可能会从这些链接视频编号为61,7 here以及视频7 here
的视频中受益。这些将有助于或购买图书/使用网络资源。
PART2。
如果你不得不提交它,因为你无法让ODBC数据库使用触发器/数据宏来记录历史记录,你可以自己存储历史记录....但是你必须每天都这样做
0在第1天,将ODBC数据的完整副本作为YOURTABLE。添加字段" dump Number"并将其全部设置为1。 1.每天链接到ODBC数据。
从YOURTABLE加入到ODBC表中,找到所有已更改的记录(即只测试要监视的字段以及是否有任何更改的字段......)。
将这些已更改的记录附加到YOURTABLE,并为"转储号码为2"这必须一直增加!
您现在可以编写SQL以获取每个主键的最新记录。
SELECT *
FROM Mytable
WHERE
(
SELECT PrimaryKeyFields, MAX(DumpNumber) AS MAXDumpNumber
FROM Mytable
GROUP BY PrimaryKeyFields
) AS T1
ON t1.PrimaryKeyFields = Mytable.PrimaryKeyFields
AND t1.MAXDumpNumber= Mytable.DumpNumber
您可以将最近的记录与之前的记录进行比较。 即获得先前的转储 请注意,这不会在abvoe SQL中起作用(除非您始终保留每条记录!)
AND t1.MAXDumpNumber-1 = Mytable.DumpNumber
使用类似的内容获取前一行:
SELECT *
FROM Mytable
INNER JOIN
(
SELECT PrimaryKeyFields
, MAX(DumpNumber) AS MAXDumpNumber
FROM Mytable
INNER JOIN
(
SELECT PrimaryKeyFields
, MAX(DumpNumber) AS MAXDumpNumber
FROM Mytable
GROUP BY PrimaryKeyFields
) AS TabLatest
ON TabLatest.PrimaryKeyFields = Mytable.PrimaryKeyFields
AND
TabLatest.MAXDumpNumber <> Mytable.DumpNumber
-- Note that the <> is VERY important
GROUP BY PrimaryKeyFields
) AS T1
ON t1.PrimaryKeyFields = Mytable.PrimaryKeyFields
AND t1.MAXDumpNumber= Mytable.DumpNumber
创建4和5以及MS Access命名查询(或SS视图),然后像表一样对它们进行处理以进行比较。
确保您在PK字段和DumpNumber上创建了索引,并且它们应该是唯一的 - 这会加快速度....