请问您在以下方面的帮助吗?
我正在尝试计算结果中从一条记录到下一条记录的变化。如果我向您显示我当前的查询和结果,可能会有所帮助…
SELECT A.AuditDate, COUNT(A.NickName) as [TAccounts],
SUM(IIF((A.CurrGBP > 100 OR A.CurrUSD > 100), 1, 0)) as [Funded]
FROM Audits A
GROUP BY A.AuditDate;
查询给我这些结果…
AuditDate D/M/Y TAccounts Funded
--------------------------------------------
30/12/2011 506 285
04/01/2012 514 287
05/01/2012 514 288
06/01/2012 516 288
09/01/2012 520 289
10/01/2012 522 289
11/01/2012 523 290
12/01/2012 524 290
13/01/2012 526 291
17/01/2012 531 292
18/01/2012 532 292
19/01/2012 533 293
20/01/2012 537 295
理想情况下,我想要获得的结果将类似于以下内容…
AuditDate D/M/Y TAccounts TChange Funded FChange
------------------------------------------------------------------------
30/12/2011 506 0 285 0
04/01/2012 514 8 287 2
05/01/2012 514 0 288 1
06/01/2012 516 2 288 0
09/01/2012 520 4 289 1
10/01/2012 522 2 289 0
11/01/2012 523 1 290 1
12/01/2012 524 1 290 0
13/01/2012 526 2 291 1
17/01/2012 531 5 292 1
18/01/2012 532 1 292 0
19/01/2012 533 1 293 1
20/01/2012 537 4 295 2
查看“ 2012年1月1日”的行,由于“笔数”已从以前的526增加到531,因此“ TChange”的值为5。“ FChange”将基于“
Funded”字段。我猜想要知道的是,此示例的上一行日期为‘13 / 01/2012’。我的意思是,有些日子我没有数据(例如,周末)。
我想我需要使用SubQuery,但是我真的很难弄清楚从哪里开始。你能告诉我如何得到我需要的结果吗?
我正在使用MS Access 2010
非常感谢您的宝贵时间。
强尼
这是您可以尝试的一种方法…
SELECT B.AuditDate,B.TAccounts,
B.TAccount -
(SELECT Count(NickName) FROM Audits WHERE AuditDate=B.PrevAuditDate) as TChange,
B.Funded -
(SELECT Count(*) FROM Audits WHERE AuditDate=B.PrevAuditDate AND (CurrGBP > 100 OR CurrUSD > 100)) as FChange
FROM (
SELECT A.AuditDate,
(SELECT Count(NickName) FROM Audits WHERE AuditDate=A.AuditDate) as TAccounts,
(SELECT Count(*) FROM Audits WHERE (CurrGBP > 100 OR CurrUSD > 100)) as Funded,
(SELECT Max(AuditDate) FROM Audits WHERE AuditDate<A.AuditDate) as PrevAuditDate
FROM
(SELECT DISTINCT AuditDate FROM Audits) AS A) AS B
而不是使用的Group By
我用subquerys两全TAccounts和资助,以及上次审计日期,然后将其用于在主SELECT
语句获取TAccounts,再次资助,但这个时间之前的日期,以便任何要求可以对他们进行计算。
但我想这可能会很慢
问题内容: 我有一个带有历史记录的表,该表由主表中的多个触发器发布在该表中。我想在历史记录表上创建一条select语句,在该表中,我的每条记录都由其先前的记录(由相同的LineID和最高的ActionDate标识)进行了联接,因此我可以提取这两者之间的差异。 我尝试了此操作,但是(My)SQL不允许引用JOINED子选择中的第一个“ FROM”表:where子句中的未知列h1.LineID 我怎样
我试图从sql解决方案中调整解决方案,但我仍然受到配置单元的限制:它只接受from中的子查询,并且joins必须只包含相等项。 谢谢你。 编辑1: 我可以在使用该函数之前对表数据进行排序,但我对此不满意,因为我希望避免这是一个开销。 第二:在分布式Hadoop配置的情况下,数据在可用的作业跟踪器之间进行分割。所以我相信这个函数会有多个实例,每个映射器有一个,所以在两个映射器之间有相同的客户数据拆分
问题内容: 在我的程序开始和结束时, 但是,当我尝试区别时,我会遇到语法错误…。我做错了一些事情,但是我不确定发生了什么… 基本上,我只想在程序开始时将时间存储在变量中,然后将第二次时间存储在末尾的第二个变量中,然后在程序的最后一位中计算差并显示出来。我不是要为功能速度计时。我正在尝试记录用户通过某些菜单花费的时间。做这个的最好方式是什么? 问题答案: 该模块将为您完成所有工作: 如果您不想显示微
问题内容: 我有一个像这样的表:例如,trans是表的名称 而且我必须更新Delta列。假设每月有一笔交易,则该值是同一帐户的当前行与同一帐户的先前行之差。这是一个可以生成增量值的虚拟sql 该查询的结果是 但是没有任何前一行的行的增量应该是其数量,例如 这些都是顺便说了。 请帮助我解决此查询。 问题答案: 这是您对原始查询进行的相应修改: 月比较从移动到,这使得一个差,并且被替换为。 脚本 的版
问题内容: 我有一个具有以下结构的表: 我想知道如何计算SQL中最近7天每天的记录数,然后将其作为整数返回。 目前,我编写了以下SQL查询: 但是,这仅返回过去7天的所有条目。如何计算过去7天每天的记录? 问题答案:
问题内容: 我试图计算两个日期之间的差额,但我注意到一件事。仅计算日期时,间隔中包括夏令时的开始,因此结果将缩短1天。 为了获得准确的结果,还必须考虑小时数。 例如: 输出: 有人有更好的解决方案吗? 问题答案: 哦,是的,有更好的解决方案! 停止使用过时的类,并使用Java 8及更高版本(教程)中内置的java.time API的功能 。具体而言,,,和类。