在 MicroStrategy 中滚动 12 个月的 Salesforce

Posted

技术标签:

【中文标题】在 MicroStrategy 中滚动 12 个月的 Salesforce【英文标题】:Rolling 12 Month Salesforce in MicroStrategy 【发布时间】:2020-04-16 19:52:02 【问题描述】:

我在连接到我的 SalesForce 数据库的 MSTR WEB 中制作了多维数据集,我有一个格式为“YYYY-MM-DD HH:MM:SS”的日期字段,如何将其保持为滚动 12 个月? 我尝试了不起作用的 add_month(current_date, -12)。

SELECT
  P.ID PROBLEM_ID,
  CAST(P.BMCSERVICEDESK__OPEN_DATE_TIME__C AS DATE) OPENED_DATE, 
  parent_account__C

FROM BMCSERVICEDESK__PROBLEM__C P 

WHERE P.COUNTRY__C  != ''  
AND BMCSERVICEDESK__OPEN_DATE_TIME__C >= add_months(current_date, -12) 

错误:

从外部数据源(数据库)访问信息时出错 实例:(DataImport)[0],错误:执行查询失败。错误类型: odbc 错误。尝试的 Odbc 操作:SQLExecDirect。 [42000:-11:开 SQLHANDLE] [MicroStrategy][ODBC Salesforce 驱动程序][Salesforce] 意外标记:语句 [select] 中的 ADD_MONTHS P.ID PROBLEM_ID, CAST(P.BMCSERVICEDESK__OPEN_DATE_TIME__C AS DATE) OPENED_DATE,parent_account__CFROM BMCSERVICEDESK__PROBLEM__C P WHERE P.COUNTRY__C != '' AND BMCSERVICEDESK__OPEN_DATE_TIME__C >= add_months(current_date, -12)])

谢谢!

【问题讨论】:

BMCSERVICEDESK__OPEN_DATE_TIME__C 是什么数据类型?看来你是想从最后十二个月的第一天开始比较,是你想要的吗? 不确定数据时间,但是当我运行整个表时,它会使用日期/时间格式。我看的不是第一天,而是当天 - 12 个月 【参考方案1】:

您的问题/错误是什么? P.BMCSERVICEDESK__OPEN_DATE_TIME__C 的类型是什么?

编辑:

先用这个:

SELECT data_type, data_length FROM all_tab_columns where table_name = 'YOUR_TABLE' AND COLUMN_NAME = 'YOUR_COLUMN'

SELECT 
P.ID PROBLEM_ID, CAST(P.BMCSERVICEDESK__OPEN_DATE_TIME__C AS DATE) OPENED_DATE, parent_account__C

FROM BMCSERVICEDESK__PROBLEM__C P 

WHERE P.COUNTRY__C  is not null
AND trunc(BMCSERVICEDESK__OPEN_DATE_TIME__C) >= add_months(sysdate, -12)

你也可以截断sysdate...

【讨论】:

使用 add_months 我得到“意外的令牌:语句中的 ADD_MONTHS”错误。类型是日期/时间,基于我在运行整个表时可以看到的内容 @darkpunk 使用查询获取 data_type(在 EDIT 下)。 遗憾的是,该查询不起作用。我认为 MSTR Web 查询在连接到 salesforce 时不会像常规 SQL 查询那样工作。无论如何,我很感激这方面的帮助。您的查询应该可以工作,但我猜它是系统错误而不是查询错误。【参考方案2】:

基本问题似乎是何时开始为您的 12 个月跑步计时。使用您现在所做的,其中“date_column >= '2019-04-01 00:00:00'”然后每月更新(?)看起来您是从本月 1 日开始的 12 个月。所以试试

date_column >= add_months(trunc(sysdate,'month'), -12) 

您表示使用 add_months 时遇到错误。这意味着您的语句中有语法,但您确实发布了它,所以我们看不到它可能是。 BTW Oracle 不分离数据和时间数据类型。所有日期类型都包含日期和时间组件。

【讨论】:

试过这个仍然得到“Unexpected token: ADD_MONTHS in statement”错误:/ 发布您运行的确切 SQL 语句,以及确切的完整错误消息。如果您运行的是较大代码块的一部分,请发布它。该错误表明您有语法问题。没有人能在看不见的情况下帮助你。光说什么错误,甚至是什么错误,完全没有用。另外,请更新问题,不要将您的代码作为评论发布。也许您应该查看How to Ask。 我已编辑帖子以显示我尝试过的内容以及收到的错误消息。

以上是关于在 MicroStrategy 中滚动 12 个月的 Salesforce的主要内容,如果未能解决你的问题,请参考以下文章

Microstrategy 从 YYYYMM 格式创建属性 Previoux 月份

动态 SQL 滚动 12 个月数据透视

如何根据 groupby 计算 12 个月的滚动总和?

标普500指数下跌2.4%至盘中低点

在 Redshift 中滚动 N 月平均值,每月有多个条目

SQL Hive - 计算前几个月的滚动 SUM、AVG