Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在PowerBI中添加一个列,用于评估大型数据集的最新结束时间和最早开始时间的差异?_Sql_Powerbi - Fatal编程技术网

Sql 如何在PowerBI中添加一个列,用于评估大型数据集的最新结束时间和最早开始时间的差异?

Sql 如何在PowerBI中添加一个列,用于评估大型数据集的最新结束时间和最早开始时间的差异?,sql,powerbi,Sql,Powerbi,我是PowerBI的新手。我正在尝试制作一份测试完成所需天数的报告。有大量的测试在一周内运行,我想从最晚的结束时间中减去最早的开始时间,不包括周六和周日,然后将结果显示为最新实际结束旁边的新列,如下图所示 请原谅以上任何错误。数据是使用查询从SQL Server获取的(如果有帮助的话)。谢谢。在sql server中查询 select * --number of days ,DATEDIFF (day,[Earrliest startTime], [Latest actuale

我是PowerBI的新手。我正在尝试制作一份测试完成所需天数的报告。有大量的测试在一周内运行,我想从最晚的结束时间中减去最早的开始时间,不包括周六和周日,然后将结果显示为最新实际结束旁边的新列,如下图所示

请原谅以上任何错误。数据是使用查询从SQL Server获取的(如果有帮助的话)。谢谢。

在sql server中查询

select 
  *
  --number of days 
  ,DATEDIFF (day,[Earrliest startTime], [Latest actualend]) diffday
from TestTable
--excluding Saturdays and Sundays
where datepart(weekday,[Earrliest startTime]) not in (6,7) 
  and datepart(weekday,[Latest actualend]) not in (6,7)

希望它能帮助您:-)在sql server中查询

select 
  *
  --number of days 
  ,DATEDIFF (day,[Earrliest startTime], [Latest actualend]) diffday
from TestTable
--excluding Saturdays and Sundays
where datepart(weekday,[Earrliest startTime]) not in (6,7) 
  and datepart(weekday,[Latest actualend]) not in (6,7)


希望它能帮助您:-)

创建一个新的表
DateTable
作为您的日历表

DateTable = CALENDARAUTO()
添加“工作日”列,以便筛选出周末

Weekday = WEEKDAY(DateTable[Date])
现在,您可以创建计算第一天和最后一天之间天数的度量:

DayCount = COUNTX(DateTable,
               IF(DateTable[Date]+1 > MIN(StartEnd[startTime]) &&
                  DateTable[Date]+1 < MAX(StartEnd[acutalend]) &&
                  NOT(DateTable[Weekday] IN {1,7}),
                  1, BLANK()))
DayCount=COUNTX(日期表,
如果(DateTable[Date]+1>MIN(StartEnd[startTime])&&
DateTable[日期]+1<最大值(StartEnd[acutalend])&&
NOT(在{1,7}中可日期[工作日]),
1,空白()

+1
用于为您提供一天的结束,而不是一天的开始。

创建一个新的表
DateTable
作为您的日历表

DateTable = CALENDARAUTO()
添加“工作日”列,以便筛选出周末

Weekday = WEEKDAY(DateTable[Date])
现在,您可以创建计算第一天和最后一天之间天数的度量:

DayCount = COUNTX(DateTable,
               IF(DateTable[Date]+1 > MIN(StartEnd[startTime]) &&
                  DateTable[Date]+1 < MAX(StartEnd[acutalend]) &&
                  NOT(DateTable[Weekday] IN {1,7}),
                  1, BLANK()))
DayCount=COUNTX(日期表,
如果(DateTable[Date]+1>MIN(StartEnd[startTime])&&
DateTable[日期]+1<最大值(StartEnd[acutalend])&&
NOT(在{1,7}中可日期[工作日]),
1,空白()

+1
是用来给你一天的结束而不是一天的开始。

作为衡量标准还是作为计算列?你是说如果考试跨越了一个周末,周末的小时数(48小时)就不应该被计算吗?@Alexis-请作为衡量标准。@NIck-这是正确的:)我还想补充一下,这些列是“最早开始时间”“最新结束时间”不是数据库中的列,我在Power BI中聚合了它们。作为度量还是计算列?你是说如果考试跨越一个周末,周末的小时数(48)不应该计算吗?@Alexis-请作为度量。@NIck-这是正确的:)我还想添加列“最早开始时间”“最新结束时间”不是数据库中的列,我在Power BI中聚合了它们。谢谢。在尝试实现这一点时,我在SQL中得到了Msg 147。我会继续尝试:)谢谢。在尝试实现这一点时,我在SQL中得到了Msg 147。我将继续尝试:)