SQL/VBA:如何按从每月第一天以外的一天开始的会计年度进行分组

2024-01-08

我正在尝试(使用 MS Access)按会计年度对一些数据进行分组,该会计年度可能与日历年度不同。

如果每个会计年度总是从给定月份的第一天开始,那么解决方案很简单:可以简单地使用如下 if 语句:

FY: IIf(Month([orderdate])<month([startFYofaCompany]);Year([orderdate])-1;Year([orderdate]))

在选择查询中,例如

SELECT statement here AS FY, Sum(something) AS SumOfSth
GROUP BY statement here;

然而,我的情况的困难在于,给定公司的财政年度可以从给定月份的 1 号以外的日期开始。我一直在寻找解决方案,但每个人都认为不是这样。

如果有人遇到同样的问题并可以分享解决方案,我将不胜感激。

编辑: 没有模式重新。财政年度——数据库由多家公司组成,无论某些公司的财政年度是从 2 号、3 号、15 号还是任何给定月份的任何其他日期开始,数据库都应该有效。开始日期存储在单独的字段中(在上面的伪代码中:startFYofaCompany)。


如果您要考虑月份+日期,那么显然您需要表中相应的 2 个字段(NOT NULL DEFAULT 1).

添加后,以下将计算年份: year(orderDate) - IIF(dateserial(year(orderDate), startFYofaCompany_month, startFYofaCompany_day) > orderDate, 1, 0)

将此添加到您在查询中准备的 2 个位置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL/VBA:如何按从每月第一天以外的一天开始的会计年度进行分组 的相关文章

  • 如何使用 LAMBDA 表达式在 LINQ 中执行 IN 或 CONTAINS?

    我有以下 Transact Sql 我正在尝试将其转换为 LINQ 并且很挣扎 SELECT FROM Project WHERE Project ProjectId IN SELECT ProjectId FROM ProjectMemb
  • 如何使用vba复制Excel工作表中的动态范围

    我试图使宏中的范围是动态的 而不指定最后一行x Sheets SheetName Range A2 K1000 Copy在 1000 行中 我想将其更改为动态 因为有时我的数量会更少或更多 尝试这个 Sub Test Dim lRow as
  • SQL - != 'NULL' 的解释

    我的SSMS代码如下 Select top 50 From FilteredContact Where statuscode 1 and emailaddress1 NULL and telephone1 NULL and address1
  • 使用 postgres 和 node js 在单个语句中执行多个查询

    我需要在像这样的单个语句中执行插入和删除查询 INSERT INTO COMPANY ID NAME VALUES 1 Paul DELETE FROM COMPANY WHERE ID 12 这是我用于执行查询的 node js 代码 p
  • 在 Oracle 行的多个列上使用透视

    我在 Oracle 表中有以下示例数据 tab1 我正在尝试将行转换为列 我知道如何在某一列上使用 Oracle 数据透视表 但是否可以将其应用于多个列 样本数据 Type weight height A 50 10 A 60 12 B 4
  • POINT 列上的 MySQL INSERT/UPDATE

    我正在尝试用我国家的地理位置填充我的数据库 我的一张表有 4 个字段 ID PK 纬度 经度和地理点 EDIT SCDBs Punto Geografico SET lat 18 469692 SET lon 63 93212 SET g
  • 在单个 select 语句中多次有条件地求和同一列?

    我有一个表 显示每个月在给定位置的各种类型的部署的员工部署情况 ID Location ID Date NumEmployees DeploymentType ID 例如 一些记录可能是 1 L1 12 2010 7 1 Permanent
  • 如何在 DB2 AS/400 中将小数字段转换为日期字段?

    我有一个 DECIMAL 字段 其中包含 AS400 格式的日期 1100614 我努力了 cast MYDATE as DATE 但我无法将 DECIMAL 转换为 DATE 而 DATE MYDATE 返回空值 如何将此字段转换为日期字
  • 需要按天分割日期时间范围

    我有一个需要根据日期时间拆分的表 输入表 ID Start End A 2019 03 04 23 18 04 2019 03 04 23 21 25 A 2019 03 04 23 45 05 2019 03 05 00 15 14 所需
  • 不带 GROUP BY 的聚合查询

    这个查询似乎在我的旧机器上完美运行 但是 在我的 MySQL 5 7 14 和 PHP 5 6 25 的新机器上 它会抛出错误 致命错误 未捕获异常 PDOException 并带有消息 SQLSTATE 42000 语法错误或访问冲突 1
  • 无法删除 Access 中 SQL 表上的注册表

    我有一个在 Access 应用程序中链接的 SQL Server 表 如果我尝试使用删除查询删除记录 则没有问题 但是 如果我尝试直接在表中删除记录或在数据表模式下使用选择查询 Access 不允许我删除记录并引发以下警告 Microsof
  • Excel 2007 从 C# get_Value 始终返回 -2146826265

    我有一个引用 Microsoft Excel 12 0 对象库的小型 C 应用程序 除此之外 它还从 Excel 单元格读取值 它从一些较旧的 Excel xls 文件和一些 2007 文件 xlsx 中读取此值 所有 xls 文件的值都会
  • 使用图表时避免使用“激活”和“选择”(Excel)

    我知道使用Activate and Select在 Excel 中 VBA 不是最佳实践 我看过有关如何在处理范围时避免它们的参考资料 例如 LINK https stackoverflow com questions 10714251 e
  • Postgresql 一张表的多个计数

    我想从表中的两列中获得这些列中值的统一计数 例如 两列是 表 报告 type place one home two school three work four cafe five friends six mall one work one
  • 如何使用 vb.net 将数据插入 Access 表?

    我想在 Access 数据库中插入一个新行 我正在考虑做类似的事情 oConnection new Connection connectionstring oTable oCennection table Orders oRow oTabl
  • 加密数据库字段的好方法?

    我被要求加密数据库中的各种数据库字段 问题是这些字段在读取后需要解密 我在用着Django and SQL Server 2005 有什么好主意吗 See 在 SQL Server 2005 数据库中使用对称加密 https web arc
  • Reporting Services 在哪里存储其日志文件

    最相关的谷歌结果似乎表明 为了访问日志 我们必须将您自己的日志表部署到数据库并制作报告服务写入它 http technet microsoft com en us library ms157403 aspx 简而言之 Reporting S
  • MySQL中如何声明变量?

    如何在mysql中声明一个变量 以便我的第二个查询可以使用它 我想写一些类似的东西 SET start 1 SET finish 10 SELECT FROM places WHERE place BETWEEN start AND fin
  • JDBC插入实数数组

    我试图将一个真实的数组插入到 postgresql 数组中 该表的定义是 String sqlTable CREATE TABLE IF NOT EXISTS ccmBlock sampleId INTEGER block REAL 插入内
  • 在 SQL Server 上执行分页的最佳方式是什么?

    我有一个数据库超过200万记录 我需要执行分页以在我的 Web 应用程序上显示 该应用程序每页必须有 10 条记录DataGrid 我已经尝试使用ROW NUMBER 但是这种方式会选择所有 200 万条记录 然后只得到 10 条记录 我也

随机推荐