Sql server 如果一个数字在两个单元格定义的间隔内,让SSI计算的最佳方法是什么?

Sql server 如果一个数字在两个单元格定义的间隔内,让SSI计算的最佳方法是什么?,sql-server,tsql,ssis,Sql Server,Tsql,Ssis,我们有一个1100万条记录的数据集,其中两列指定了班次的开始和结束时间。对于我们的数据仓库,我们需要一个列出所有班次的表,但我们还需要24列,一天中每小时一列 如果班次的开始时间=15:00,结束时间=19:00,我希望第15-18列填充1。 如果班次在15:30开始,第15列应仅包含0,5 1100万行,每行24列的算术运算听起来很昂贵 使用SSI(如有必要,还包括存储过程或函数)解决此问题的最佳方法是什么 结果会存储在数据库里吗?那么你应该在那里做计算。对于SQL Server来说,1100

我们有一个1100万条记录的数据集,其中两列指定了班次的开始和结束时间。对于我们的数据仓库,我们需要一个列出所有班次的表,但我们还需要24列,一天中每小时一列

如果班次的开始时间=15:00,结束时间=19:00,我希望第15-18列填充1。 如果班次在15:30开始,第15列应仅包含0,5

1100万行,每行24列的算术运算听起来很昂贵


使用SSI(如有必要,还包括存储过程或函数)解决此问题的最佳方法是什么

结果会存储在数据库里吗?那么你应该在那里做计算。对于SQL Server来说,1100万行应该不是问题。我同意,SQL Server可以轻松地透视所有1100万行。我个人建议使用“交叉表”。嗨,是的,结果实际上存储在同一个数据库中。所以我可以/应该在ETL过程中使用SSI,构建目标表的结构,然后在SQL server本身中进行计算?例如,使用存储过程并迭代所有行和列?@swaglordmcmuffin“是的,您应该使用SSI加载表,然后使用脚本或SP直接在SQL Server内部计算所有派生数据。您不必“迭代”,SQL经过优化,可以处理集合,因此您可以有效地成批执行所有操作。@感谢您的澄清!结果会存储在数据库里吗?那么你应该在那里做计算。对于SQL Server来说,1100万行应该不是问题。我同意,SQL Server可以轻松地透视所有1100万行。我个人建议使用“交叉表”。嗨,是的,结果实际上存储在同一个数据库中。所以我可以/应该在ETL过程中使用SSI,构建目标表的结构,然后在SQL server本身中进行计算?例如,使用存储过程并迭代所有行和列?@swaglordmcmuffin“是的,您应该使用SSI加载表,然后使用脚本或SP直接在SQL Server内部计算所有派生数据。您不必“迭代”,SQL经过优化,可以处理集合,因此您可以有效地成批执行所有操作。@感谢您的澄清!