【问题标题】:querying oracle table based on cumulative amount based of fiscal year and fiscal period根据会计年度和会计期间的累计金额查询oracle表
【发布时间】:2015-06-03 13:30:29
【问题描述】:

在解释我要完成的工作之前,让我先向您展示我正在使用的数据。这是一个更大的表格的一部分,所以这只是我认为最能代表我试图回答的问题的数据的一个子集。 表创建:

CREATE TABLE "MIGUEL83"."CUM_LEDGER" 
   ( "FIELD_NAME" VARCHAR2(50 BYTE), 
  "ACCOUNT_CODE" VARCHAR2(50 BYTE), 
  "TRANASCTION_AMOUNT" NUMBER, 
  "GRANT_CODE" VARCHAR2(50 BYTE), 
  "FISCAL_PERIOD" VARCHAR2(50 BYTE), 
  "FISCAL_YEAR" NUMBER(20,0)
   )



 Insert for table.
    Insert into CUM_LEDGER (FIELD_NAME,ACCOUNT_CODE,TRANASCTION_AMOUNT,GRANT_CODE,FISCAL_PERIOD,FISCAL_YEAR) values ('YTD','2010',11019.9,'202118','12',2006);
    Insert into CUM_LEDGER (FIELD_NAME,ACCOUNT_CODE,TRANASCTION_AMOUNT,GRANT_CODE,FISCAL_PERIOD,FISCAL_YEAR) values ('YTD','2010',5084.08,'202118','10',2007);
    Insert into CUM_LEDGER (FIELD_NAME,ACCOUNT_CODE,TRANASCTION_AMOUNT,GRANT_CODE,FISCAL_PERIOD,FISCAL_YEAR) values ('YTD','2010',1105.39,'202118','11',2007);
    Insert into CUM_LEDGER (FIELD_NAME,ACCOUNT_CODE,TRANASCTION_AMOUNT,GRANT_CODE,FISCAL_PERIOD,FISCAL_YEAR) values ('YTD','2010',0,'202118','12',2007);

我想做的基本上是编写一个查询,将所有金额汇总到我决定的财政年度和期间。因此,换句话说,如果我将 where 子句设置为“where my accounting_period = '10' and my accounting_year = '2007'”。我还想包括该财政年度和期间之前的项目,因此在这种情况下,我应该在 2006 年财政年度 12 中包含一个金额为 11019.9 的金额,因为该交易发生在财政年度和希望期之前我正在查询。

预期结果应如下所示

这是我编写此 SQL 的糟糕尝试,我知道它不会工作,它需要帮助。

SELECT
  FIELD_NAME,
  ACCOUNT_CODE,
  sum(TRANASCTION_AMOUNT),
  GRANT_CODE,
  FISCAL_PERIOD,
  FISCAL_YEAR
FROM MIGUEL83.CUM_LEDGER 
WHERE FISCAL_PERIOD = '10'
AND FISCAL_YEAR = '2007'
group by 
 FIELD_NAME,
  ACCOUNT_CODE,
  GRANT_CODE,
  FISCAL_PERIOD,
  FISCAL_YEAR;

提前感谢你们提供的任何帮助。

【问题讨论】:

  • 上一个会计期间是“09”还是“9”?
  • 现在是 09。

标签: sql oracle


【解决方案1】:

试试:

SELECT
    sum(TRANASCTION_AMOUNT)
FROM MIGUEL83.CUM_LEDGER 
WHERE (TO_NUMBER(FISCAL_PERIOD) <= 10 AND FISCAL_YEAR = 2007)
OR FISCAL_YEAR < 2007

【讨论】:

  • 谢谢你这似乎工作我会用更大的规模测试,如果它检查出来,我会奖励你的回应非常感谢你的回答。
  • 这很简单。我认为你试图用你的解决方案使事情变得过于复杂。尝试专注于您需要实现的目标。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-27
  • 1970-01-01
  • 2021-03-16
  • 1970-01-01
  • 2017-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多