【问题标题】:order by Month by fiscal year按会计年度按月排序
【发布时间】:2012-06-20 20:30:48
【问题描述】:

我有一个 Excel 电子表格,其中包含这样的数据

         Month         Value1   FY11Count     FY12COunt
         ----------------------------------------------
          jul          xxx      23             39
          aug          yy       33             49

          ..etc

我正在使用 ODBC 为仪表板应用程序查询此数据。我想按财政年度(7 月、8 月……等到 6 月)订购这些数据。 我可以添加另一个伪列,比如 MonthNo 并使用某种逻辑来说当 Month=Jul 然后 1、aug 然后 2..etc 并按该伪列排序?

还有比这更好的建议吗?

【问题讨论】:

  • 这可能是最好的方法,但只是另辟蹊径。您可以在 Excel 电子表格中有一个查找表,其中包含 Month |月号作为列,然后使用月号向您的数据添加一个额外的列,并在您的 SQL 中选择它。取决于您的工作流程以及您想如何“给猫剥皮”!
  • 我遇到的问题是,我正在使用 odbc 并且 case 语句似乎不能很好地工作..但是我确实喜欢你的建议..只需添加一个新的工作表并将月号映射到月名然后加入他们并通过...下订单谢谢!!!!!!
  • 太好了,如果你让它正常工作,请将你的答案作为答案发布。
  • 我用你的想法创建了一个新的工作表并加入了我想要的东西。效果很好!!我如何接受你的回答?

标签: sql excel odbc


【解决方案1】:

不确定这是否不是您所说的“伪列”,但 SQL 方式是这样的:

order by case Month
           when 'jul' then 1
           when 'aug' then 2
           ...
         end

【讨论】:

  • 是的,你的答案就是我要做的..但不确定在 odbc excel sql 中是否可行!!
  • 好吧,尝试在微软查询中实现case when 简直是一场噩梦,cmets 中的连接建议要简单得多;)
【解决方案2】:
ORDER BY CASE 
    WHEN Month(application_receiving_date) = 1 THEN 13 
    WHEN Month(application_receiving_date) = 2 THEN 14 
    WHEN Month(application_receiving_date) = 3 THEN 15                       
ELSE Month(application_receiving_date) END

【讨论】:

  • 请始终将您的答案放在上下文中,而不仅仅是粘贴代码。有关详细信息,请参阅here
猜你喜欢
  • 2018-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-12
  • 1970-01-01
  • 2015-12-17
  • 1970-01-01
相关资源
最近更新 更多