在日期和标志之间更新值

时间:2018-08-24 15:08:09

标签: sql

我在下面有2张桌子。表A在同一AccountNum 2018-08-17和2018-08-21上包含两个不同日期的峰值价格。我需要首先在表A Spike_Reading_Day 2018-08-17中获取表A,在表B Spike_Reading_Day 2018-08-17中找到匹配项,并找到直到最后一个Flag'P'Readdate 2018-08-09之前的所有日期并计算数字天。一旦我知道从2018-08-09到2018-08-17之间有8天,我需要将表Spikeval 150除以8天,然后将计算出的值应用于这8天。示例150/8天= 18.75,并在每个日期的2018-08-09至2018-08-17之间应用

同样适用于表A第二个Spike_Reading_Day 2018-08-21,从2018-08-19到2018-08-21之间有3天,直到最后一个标志'P'为止。所以我需要将SpikeVal 180/3天= 60并将其应用于2018-08-19、2018-08-20和2018-08-21。我尝试了不同的选项,但没有用,因为我在同一account_number上有2个日期,任何人都可以拥护它吗?谢谢您的帮助

表A

**FID      AccounT      Spike_Reading_Day SpikeVal Flag**
34166   TT0034166          2018-08-17      150        P
34166   TT0034166          2018-08-21      180        P

表B

**FID   AccountNum  ReadDate    ReadVal Flag**
34166   TT0034166   2018-08-09  23.3620 P
34166   TT0034166   2018-08-10  24.1021 A
34166   TT0034166   2018-08-11  24.1021 A
34166   TT0034166   2018-08-12  24.1021 A
34166   TT0034166   2018-08-13  24.1021 A
34166   TT0034166   2018-08-14  24.1021 A
34166   TT0034166   2018-08-15  24.1021 A
34166   TT0034166   2018-08-16  24.1021 A
34166   TT0034166   2018-08-17  24.1021 A
34166   TT0034166   2018-08-18  18.7660 P
34166   TT0034166   2018-08-19  24.5550 A
34166   TT0034166   2018-08-20  24.5550 A
34166   TT0034166   2018-08-21  24.5550 A

0 个答案:

没有答案