我有一个像下面的数据表,它没有固定,它可以包含n个列。我需要根据列名比较列值并更新其他行值
E.g
dtFinYearValues
dtColumnName | 2017AU | 2017CN | 2018AU | 2018CN | 2019CN | 2020CN
--------------------------------------------------------------------
Value | -1234 | -500 | -300 | 1000 | 1000 | -500
LatestValue | -1234 | -500 | -300 | 500 | 1000 | -500
2018CN的最新价值 - > 2017CN值(-500)和2018CN值(1000)之和。
对于上面的数据表,我需要比较列名并相应地更新值 条件:
1)如果值为-ve,则更新具有相同值的LatestValue。
2)如果值为+ ve,检查同一国家的前一个年度是否存在任何-ve值(在上述数据表中2018CN值为+ ve但2017CN值为负,因此2017CN和2018CN之和为要更新2018CN - >最新值。)
我无法对列号进行硬编码,因为可能存在不同的国家/地区年份组合,我需要仅比较一个国家/地区与同一国家/地区的价值。 我如何在vb.net中编码?
答案 0 :(得分:1)
你能以另一种方式从数据库中恢复数据吗?如果是这样,请查看使用SQL unpivot(也可以使用原始数据集在您的代码中完成unpivot,但您必须手动编写此代码)。这将为您提供3列(名称,值,最新值)。这将更容易处理。仍然可以使用原始数据集完成更新。