Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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/5/date/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
日期范围linq查询效率_Linq_Date_Foreach_Range - Fatal编程技术网

日期范围linq查询效率

日期范围linq查询效率,linq,date,foreach,range,Linq,Date,Foreach,Range,我的任务是设计一个页面,为sql server库存数据库生成库存/销售报告,该数据库包括以下内容:起始库存、日终库存、已交付商品、给定日期或日期范围内的已售出商品 我最后做的是使用for循环遍历需要统计数据的天数范围,并保留查询返回的每天统计数据的运行记录 零件表有一个名为quantity的字段,用于跟踪库存中每个项目的当前库存。“交货”表包含项目何时交货的记录,“销售”表包含何时进行销售的记录 由于某些限制,我只能计算出某一天某一特定商品的期末库存量,方法是取当前库存量减去交付量,再加上当天的

我的任务是设计一个页面,为sql server库存数据库生成库存/销售报告,该数据库包括以下内容:起始库存、日终库存、已交付商品、给定日期或日期范围内的已售出商品

我最后做的是使用for循环遍历需要统计数据的天数范围,并保留查询返回的每天统计数据的运行记录

零件表有一个名为quantity的字段,用于跟踪库存中每个项目的当前库存。“交货”表包含项目何时交货的记录,“销售”表包含何时进行销售的记录

由于某些限制,我只能计算出某一天某一特定商品的期末库存量,方法是取当前库存量减去交付量,再加上当天的销售量。然后,我在需要的日期范围内每天做x次,同时保持总数的连续计数

为了获得一天的统计数据,下面的查询可以充分执行,但是当需要统计一段时间时,性能会严重恶化。正如我所说的,我对linq不是很精通,我非常感谢任何帮助来提高以下查询的性能


编辑:代码被破坏了

提高性能的最佳方法是将所有这些逻辑移到数据库中,例如创建一个视图。在连接和探索数据时,很难比数据库快。

提高性能的最佳方法是将所有这些逻辑移到数据库中,例如创建一个视图。在连接和探索数据时,很难比数据库快。

对于这种复杂的查询,LINQ根本不是合适的工具。“Stats”视图将为您提供一些易于查询的内容,以获取单个统计信息,然后从那里可以轻松获取聚合信息

对于这种复杂的查询,LINQ根本不是适合此工作的工具。“统计”视图将为您提供一些易于查询的内容,以获取个人统计信息,然后从中可以轻松获取聚合数据

我想我可能必须走这条路,但我很想知道是否有办法优化我当前的解决方案。@Steve简言之,没有。你试图使用错误的工具来完成这项工作。我想我可能不得不走这条路,但很想知道是否有办法优化我当前的解决方案。@Steve简言之,没有。你试图使用错误的工具来完成这项工作。