Create a StartDate and EndDate column after value change using either T-SQL, DAX or M Query(使用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列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用T-SQL、DAX或M查询在值更改后创建StartDate和EndDate列
基础教程推荐
- SQL:使用来自具有相同列名的两个表中的数据... 2021-01-01
- 需要 MySQL 5.1 中的抽象触发器来更新审计日志 2021-01-01
- SSMS 中的权限问题:“对象 'extended_properties'、数据库 'mssqlsystem_resource'、... 错误 229)上的 SELECT 权限被拒绝" 2022-01-01
- 在 SQL 中连接多个表 2021-01-01
- 是否可以执行按位分组功能? 2021-01-01
- 将 SQL Server DateTime 列迁移到 DateTimeOffset 2021-01-01
- SQL Server 实例在登录协商期间返回无效或不受支持的协议版本 2021-01-01
- SQL 效率:WHERE IN 子查询 vs. JOIN 然后 GROUP 2021-01-01
- 无法解决整理冲突 2021-01-01
- 如何使用 mysql.connector 禁用查询缓存 2022-01-01
