我对需要过滤以生成报告的数据有疑问。
基本上每天我们都会收集一个文件并将其加载到系统中,但文件是累积文件,基本上每天都会导入相同的信息和新数据。
这将数据库加载到两个表中,即标题和详细信息表。
在标题表中,我有No_的密钥字段,导入的日期以及数据用于(期间)的月份和年份,例如“Apr2013”。
详细表格包含您可以想象的导入的所有信息。
我要做的是忽略所有旧数据,只查看该月的最新导入。
希望有人可以帮助我,如果您希望我发布任何示例数据或任何内容,请告诉我,我会将其添加进来。
提前致谢!
菲尔
答案 0 :(得分:0)
如果您无法改变流程以反复停止重复导入相同的数据 - 特别是如果数据 完全相同 - 您可以尝试以下查询:
WITH MostRecentData AS
(
SELECT MAX(dateImported) dateImported, month, year
FROM header
GROUP BY month, year
)
SELECT ...
FROM detail d
INNER JOIN header h ON h.[key] = d.[key]
INNER JOIN MostRecentData r ON h.month = r.month AND h.year = r.year
AND h.dateImported = r.dateImporter
这将为每个月和每年提取最新的行(基于导入的日期)。
老实说,如果可能的话,我会尝试更改导入过程。这听起来像是浪费了很多空间,后续处理来提取你想要的数据。