使用T-SQL、DAX或M查询在值更改后创建StartDate和EndDate列

Create a StartDate and EndDate column after value change using either T-SQL, DAX or M Query(使用T-SQL、DAX或M查询在值更改后创建StartDate和EndDate列)
本文介绍了使用T-SQL、DAX或M查询在值更改后创建StartDate和EndDate列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个表,如下所示:

日期/名称/旧值/新值

我想要一种使用以下任何查询创建开始日期和结束日期列的方法:DAX、T-SQL或M查询。

含义;开始日期是[日期],结束日期是同一个人更改值的日期。

提前感谢。

推荐答案

使用Power Query M,您可以执行以下步骤:

  • 在我的演示数据中,列已正确排序,但您可以使用此代码来确保它们是:

    #"Sort Table" = Table.Sort(#"Changed Type",{{"Name", Order.Ascending}, {"Date", Order.Ascending}})

  • 添加索引列>;从0添加&>;索引列>;(必须是从0开始)

  • 添加列>;自定义列>;名称结束日期>;

    if [Name] <> #"Added Index" [Name] {[Index] + 1} then null else Date.AddDays(#"Added Index" [Date] {[Index] + 1},-1)

  • 右键单击结束日期>;替换错误>;替换为空

  • 根据需要调整列顺序

  • 将新值列重命名为";value";,将日期列重命名为";Start Date&Quot;。删除不需要的列

源和输出:

编辑:我应该补充说,这在较小的数据集上工作得很好,但是在较大的数据集上,您可能会遇到性能问题。在这种情况下,您应该复制查询,为一个查询添加从0开始的索引,在另一个查询中从1开始创建索引。然后,您可以将这两个索引合并在一起以提取所需的日期和值。

这篇关于使用T-SQL、DAX或M查询在值更改后创建StartDate和EndDate列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
SSIS: Model design issue causing duplications - can two fact tables be connected?(SSIS:模型设计问题导致重复-两个事实表可以连接吗?)
SQL Server Graph Database - shortest path using multiple edge types(SQL Server图形数据库-使用多种边类型的最短路径)
Invalid column name when using EF Core filtered includes(使用EF核心过滤包括时无效的列名)
How should make faster SQL Server filtering procedure with many parameters(如何让多参数的SQL Server过滤程序更快)
How can I generate an entity–relationship (ER) diagram of a database using Microsoft SQL Server Management Studio?(如何使用Microsoft SQL Server Management Studio生成数据库的实体关系(ER)图?)