如何设置会计月份的日历,或将日历从10月到10月排序到9月到9月?

时间:2019-04-23 20:53:58

标签: oracle sorting fiscal

我需要按公司的财务日历对月份进行排序。到目前为止,我只能按字母顺序(八月四月,十二月,二月)进行排序。 我需要它对10月至9月进行排序

Fiscal Year Month Name COUNT(DISTINCT CTL_NO) 
2019        April                         437 
2019        December                      707 
2019        February                      600 
2019        January                       730 
2019        March                         542 
2019        November                      745 
2019        October                       955 
2018        April                         600 
2018        August                        902 
2018        December                      728 
2018        February                      593 
2018        January                       745 
2018        July                          812 
2018        June                          704 
2018        March                         671 
2018        May                           589 
2018        November                      590 
2018        October                       769 
2018        September                     810

1 个答案:

答案 0 :(得分:1)

一种实现方法是使用CASE表达式设置您的排序键。由于您的表似乎将月份存储为字符串,因此我们需要将其转换为DATE。有了DATE数据类型后,我们可以提取月份号,我们可以用它来对

进行排序
CLIPS> 
(deftemplate queue-element
    (slot order (type INTEGER) (default -1)))
CLIPS> 
(defrule put-at-the-end
    ?e1 <- (queue-element (order -1))
    ?e2 <- (queue-element (order ?o1))
    (not (and (queue-element (order ?o2))
              (test (> ?o2 ?o1))))
  =>
    (modify ?e1 (order (+ ?o1 1))))
CLIPS> 

这对于一次性使用(例如学校作业)是很好的选择,但它不是很可靠,每次需要时都必须重复。

更好的方法是拥有一个会计日历表,该表告诉您每年的每个日历日是哪个会计年度,会计月份,会计周等。每年只有365/366行,因此没有太多开销。诸如此类的表格通常在“现在”之前几年填充,过去的数据基本上留在原地,因此可以查询过去的日期并轻松确定相关的财务日期。

好运。