如果这已经被覆盖,请提前道歉。
我正在研究一个结构不是特别好的数据库,但它归第三方所有,无法更改。
我需要一些关于 t-sql 的帮助,以便在表中查找下一个值并根据结果返回记录。我先解释一下数据。我对此进行了简化,以使其更易于理解。
Polref Effective Date Transaction Type Suffix Value
ABCD1 01/06/2010 New Bus 1 175.00
ABCD1 01/06/2011 Ren 2 200.00
ABCD1 19/08/2011 Adjust 3 50.00
ABCD1 23/04/2012 Adjust 4 50.00
ABCD1 01/06/2012 Ren 5 275.00
因此,如果我运行 2011 年的查询,则代码需要在此示例中返回后缀为 2,3 和 4 的行。所以我一直在尝试做的是找到指定年份的 New Bus 或 Ren 的第一个后缀然后为同一个 polref 找到新总线或 Ren 的下一个后缀,然后使用这两个后缀值来限制我的记录集。它不起作用!
我不能使用 MAX(),因为 2013 年的交易已经添加到系统中,这样我会得到比我实际需要的更多的记录。
我应该期待这个示例数据的结果是:
ABCD1 300.00
任何帮助将不胜感激。
回答另一个问题,如果我选择 2011 作为我运行报告的年份,那么 2011 年应该只有一个 New Bus 或 Ren 交易,所以如果它是 New Bus 交易,下一个主要交易将是 Ren,如果它是 Ren那么下一个主要交易将是 Ren。同样在下面的示例中,如果我运行 2011 年,它应该找到 01/06/2011 的 Ren,所以我想返回 Ren 和两条 Adjust 记录。
抱歉,我之前没有使用过这个论坛,如果我有点含糊,请见谅。
我使用的表有很多 polref,所以我需要这段代码来计算日期范围内所有 polref 的总数。有些 polrefs 可能只有一排,一辆新巴士,有些会有很多排,具体取决于政策全年进行了多少次调整