Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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/1/ms-access/4.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 MS Access-使用带筛选器的DSUM运行总计的子查询_Sql_Ms Access - Fatal编程技术网

Sql MS Access-使用带筛选器的DSUM运行总计的子查询

Sql MS Access-使用带筛选器的DSUM运行总计的子查询,sql,ms-access,Sql,Ms Access,为了在MS Access中生成销售数量的运行总数,我使用了下面的查询,它按预期工作 SELECT ID, [Product Line], DSUM("[Qty]","[SalesData]","[Product Line] like '*Electronics*' AND [ID] <=" & [ID]) AS RunningTotal, FROM SalesData WHERE ([Product Line]) Like '*Electronics*'; 此处RunningTo

为了在MS Access中生成销售数量的运行总数,我使用了下面的查询,它按预期工作

SELECT ID, [Product Line], DSUM("[Qty]","[SalesData]","[Product Line] like '*Electronics*' AND [ID] <=" & [ID]) AS RunningTotal, FROM SalesData WHERE ([Product Line]) Like '*Electronics*';
此处RunningTotal是计算字段,而不是表字段 电气运行总量不同,电子运行总量不同

运行总量<100的电子产品等产品线的预期产量

ID    Product Line           Qty     RunningTotal
1     Electronics            15            15   
3     Samsung Electronics    10            25
6     Electronics Components 18            43
8     Electronics            50            93
你能帮我纠正一下上述问题吗


提前感谢。

我建议使用相关子查询,而不是使用域聚合函数,例如众所周知速度非常慢的DSum,例如:

从中选择q.* 选择t.id,t[产品线],t.qty, 选择sumu.qty 来自salesdata u
其中u.[product line]=t.[product line]和上面的u.id脚本工作不一致。此外,runningtotal计算字段列为空。当我运行下面的查询时,我得到了错误的结果。从选择t.id中选择q.*,t.[产品线],t.[数量],从数据u中选择sumu.[数量],其中u.[产品线]=t.[产品线]和u.id@RaviKannan我已更新了上面的答案。请注意,您的示例输出不正确,因为43+50=93而不是83。您的更新脚本在[Product Line]中运行良好,而[Product Line]正是电子产品。我想得到[Product Line]的近似值,即它应该与[Product Line]包含的电子元件匹配,而不是完全匹配的电子元件。我改变了你上面的脚本,其中q.runningtotal<100和t[产品线]类似于电子产品。我用Like替换了Equal,它给出了错误的运行总数,从而导致错误的结果记录。请给我建议解决办法。我已经更新了我的上表数据和预期结果。现在您的查询正按照我的预期工作。我感谢你的出色努力。最后一个问题。请您建议删除product line=Electronics and runningtotal<100的记录。我从*复制上面的查询*中删除了查询,它不起作用。不客气。如果我的答案充分回答了您的问题,请将答案标记为解决方案,如果您觉得合适,请进行投票,以便其他浏览该网站的人可以看到该问题已解决。如果不确定如何执行此操作,请参阅。后续查询属于新问题。谢谢
ID    Product Line           Qty     RunningTotal
1     Electronics            15            15   
2     R.K. Electricals       20            20
3     Samsung Electronics    10            25
4     Electricals            30            50
5     Electricals            45            95
6     Electronics Components 18            43
7     Electricals            25           120
8     Electronics            50            93
9     Electricals Machines   65           185
10    Electronics            15           108
11    ABC Electronics Ltd    52           160
12    Electricals            15           200
ID    Product Line           Qty     RunningTotal
1     Electronics            15            15   
3     Samsung Electronics    10            25
6     Electronics Components 18            43
8     Electronics            50            93