【发布时间】:2018-09-11 08:47:43
【问题描述】:
我有一个包含 Inside_churn 的表,该表基于我需要在此之后更新行的结果。 源表如下所示:
soli snapshotdate Madchangeflag Within15days crdpushpullflag Inside_Churn
302341-210 2018-08-13 00:00:00.000 Y Y PO 0
302341-210 2018-08-14 00:00:00.000 Y N PI 0
302341-210 2018-08-15 00:00:00.000 Y Y PI 1
302341-210 2018-08-16 00:00:00.000 Y Y PO 0
302341-210 2018-08-17 00:00:00.000 Y N PI 0
302341-210 2018-08-18 00:00:00.000 N N PI 0
302341-210 2018-08-19 00:00:00.000 Y Y PI 1
302341-210 2018-08-20 00:00:00.000 Y Y PO 0
602341-110 2018-08-13 00:00:00.000 Y Y PO 0
602341-110 2018-08-14 00:00:00.000 Y N PI 0
602341-110 2018-08-15 00:00:00.000 Y Y PI 1
602341-110 2018-08-16 00:00:00.000 Y Y PO 0
602341-110 2018-08-17 00:00:00.000 Y N PI 0
602341-110 2018-08-18 00:00:00.000 N N PI 0
602341-110 2018-08-19 00:00:00.000 Y Y PI 1
602341-110 2018-08-20 00:00:00.000 Y Y PO 0
如果任何 ID 的最新日期记录为 Inside_Churn =1,则后续 Madchangeflag ='Y' 和 crdpushpullflag='PI' 的记录应更新为 Inside_Churn =1
预期输出:
soli snapshotdate Madchangeflag Within15days crdpushpullflag Inside_Churn
302341-210 2018-08-13 00:00:00.000 Y Y PO 0
302341-210 2018-08-14 00:00:00.000 Y N PI 0
302341-210 2018-08-15 00:00:00.000 Y Y PI 1
302341-210 2018-08-16 00:00:00.000 Y Y PO 0
302341-210 2018-08-17 00:00:00.000 Y N PI 1
302341-210 2018-08-18 00:00:00.000 N N PI 0
302341-210 2018-08-19 00:00:00.000 Y Y PI 1
302341-210 2018-08-20 00:00:00.000 Y Y PO 0
602341-110 2018-08-13 00:00:00.000 Y Y PO 0
602341-110 2018-08-14 00:00:00.000 Y N PI 0
602341-110 2018-08-15 00:00:00.000 Y Y PI 1
602341-110 2018-08-16 00:00:00.000 Y Y PO 0
602341-110 2018-08-17 00:00:00.000 Y N PI 1
602341-110 2018-08-18 00:00:00.000 N N PI 0
602341-110 2018-08-19 00:00:00.000 Y Y PI 1
602341-110 2018-08-20 00:00:00.000 Y Y PO 0
【问题讨论】:
-
我不明白你的情况
If any ID has latest date record as Inside_Churn =1。您为 302341-210 更改的行不是此键的最新行。你为什么选择那个而不是最后一行作为钥匙? -
抱歉错误的描述它不是最新的(试图说记录在前)我们需要考虑最旧的日期。
标签: sql-server tsql