gpt4 book ai didi

sql - 帮助了解用于创建通知计划的 SQL 结构

转载 作者:行者123 更新时间:2023-12-02 20:55:41 26 4
gpt4 key购买 nike

您好,我遇到以下问题,我正在尝试找出解决问题的最佳方法。

我有一个名为 [Kpi] 的表,数据如下:-

[ContractId]    [KpiId]      [NotificationIntervalInMonths]
1000 1 3
1000 2 5

我有一个 [Contract] 表,其中包含:-

[ContractId]    [StartDate]     [EndDate]
1000 1/Nov/2009 4/Apr/2011

我正在寻找一种方法来显示 Kpi 何时在契约(Contract)的开始日期和结束日期之间通知用户的通知时间表,例如上面的结构将创建以下列/行:-

[ContractId]    [KpiId]      [NotificationDate]
1000 1 1/Feb/2009
1000 1 1/May/2010
1000 1 1/Aug/2010
1000 1 1/Nov/2010
1000 1 1/Feb/2011
1000 2 1/Apr/2010
1000 2 1/Sep/2010
1000 2 1/Feb/2011

我首先认为我会创建一个查找表,每次插入新的 Kpi 时都会填充该查找表,这似乎可行,而且可能是最好的方法。

我的业务逻辑规定 [NotificationIntervalInMonths] 无法更改,但契约(Contract)的 [EndDate] 可以更改。这意味着我必须根据新合约 [EndDate] 在查找表中添加/删除记录,对我来说这似乎有点困惑。

所以这引出了我的问题,是否有一种纯 SQL 方法可以让我在不创建查找表的情况下获得通知时间表?不允许使用游标 :P 但我希望 CTE 可以在这里工作。

如果我没有提供足够的信息,请询问。

最佳答案

创建一个表值函数,它接受两个日期范围,并将返回该范围内每个月的第一个日期。然后在查询中加入该函数。抱歉,无法提供更多详细信息,有人在 Skype 上骚扰我(哦,是你!)。 :)

关于sql - 帮助了解用于创建通知计划的 SQL 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1796853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com