Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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计算每日总计分钟数前一天的总计_Sql_Ms Access_Recursive Query - Fatal编程技术网

sql计算每日总计分钟数前一天的总计

sql计算每日总计分钟数前一天的总计,sql,ms-access,recursive-query,Sql,Ms Access,Recursive Query,我有一张表,上面有日期、项目和数量 我需要一个sql查询来返回每天的总数,但是总数是数量减去前一天的总数。数量随着月份的推移而累积。所以第一个有5个,第二个有12个,第三个有20个 所以1加5 二加七等于十二 三加八等于二十 我以前也做过类似的事情,但找不到也记不起来。我知道我需要一个相关的子查询 短暂性脑缺血发作 - 编辑1 我正在使用Microsoft Access。 日期是日期时间字段, 项是文本,并且 数量就是数量 - 编辑2 好的,这就是我的 SELECT oos.report_dat

我有一张表,上面有日期、项目和数量

我需要一个sql查询来返回每天的总数,但是总数是数量减去前一天的总数。数量随着月份的推移而累积。所以第一个有5个,第二个有12个,第三个有20个

所以1加5 二加七等于十二 三加八等于二十

我以前也做过类似的事情,但找不到也记不起来。我知道我需要一个相关的子查询

短暂性脑缺血发作

-

编辑1

我正在使用Microsoft Access。 日期是日期时间字段, 项是文本,并且 数量就是数量

-

编辑2

好的,这就是我的

SELECT oos.report_date, oos.tech, oos.total_cpe, oos_2.total_cpe
   FROM oos INNER JOIN (
     SELECT oos_2.tech, Sum(oos_2.total_cpe) AS total_cpe
     FROM oos_2
     WHERE (((oos_2.report_date)<#10/10/2010#))
     GROUP BY oos_2.tech
   ) oos_2 ON oos.tech = oos_2.tech;

如何将oos.report_日期输入我所说的2010年10月10日。我想我可以像mysql一样把它放在那里,但是运气不好。我将继续研究。

将它们相加,将日期加一,使值为负数,从而从今天的值中取昨天的总和:

SELECT report_date, tech, Sum(total_cpe) AS total_cpe 
FROM (
    SELECT oos.report_date, oos.tech, oos.total_cpe
    FROM oos 
    UNION ALL
    SELECT oos.report_date+1, oos.tech, 0-oos.total_cpe 
    FROM oos 
)
WHERE (report_date < #10/10/2010#) 
GROUP BY report_date, tech 
ORDER BY report_date, tech 
好的,我知道了

SELECT o.report_date, o.tech, o.total_cpe, 
o.total_cpe -  (
    SELECT  IIf(Sum(oos.total_cpe) is null, 0,Sum(oos.total_cpe)) AS total_cpe 
    FROM oos 
    WHERE (((oos.tech)=o.tech) AND ((oos.report_date)<o.report_date))
) AS total
FROM oos o;

您使用的数据库包括版本,请列出所涉及的表和列,包括数据类型。我知道我需要获得前几周的总数,并从中减去天数总数。我现在正在做这件事,我将在一秒钟内发布我到目前为止所做的事情。我复制了这些表,因为msaccess对此表示不满。我知道这不是最好的,但我可以在构建查询时解决这个问题。不知何故,我需要合并if语句。我相信那笔钱我已经用了两次了。