Роллинг 12 месяцев продаж в MicroStrategy - PullRequest
0 голосов
/ 16 апреля 2020

Я сделал куб в MSTR WEB, подключаясь к моей базе данных SalesForce, у меня есть поле даты в формате «ГГГГ-ММ-ДД ЧЧ: ММ: СС», как мне сохранить его на 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], Ошибка: Ошибка выполнения запроса. Тип ошибки: Odb c ошибка. Операция Odb c: SQLExecDirect. [42000: -11: на SQLHANDLE] [MicroStrategy] [ODB C Драйвер Salesforce] [Salesforce] Неожиданный токен: ADD_MONTHS в операторе [выберите P.ID PROBLEM_ID, CAST (P.BMCSERVICEDESK__OPEN_DATE_TIME __ C КАК ДАТА) OPENED_DATE, parent_account__CFROM BMCSERVICEDESK__PROBLEM __ C P WHERE P.COUNTRY __ C! = '' * * * * *) _0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0___0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0______ 1008 *

Спасибо!

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

Казалось бы, базовый вопрос: когда вы хотите запустить часы на 12 месяцев? Используя то, что вы делаете сейчас, где "date_column> = '2019-04-01 00:00:00'", затем обновляя ежемесячно (?), Вы, кажется, 12 месяцев ОТ 1-го числа месяца. Попробуйте

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

Вы указали, что получаете сообщение об ошибке, используя add_months. Это подразумевает синтаксис в вашем заявлении, но вы опубликовали его, поэтому мы не можем ожидать, что это может произойти. Кстати Oracle не разделяет данные и типы данных времени. Все типы дат содержат как дату, так и время.

0 голосов
/ 16 апреля 2020

В чем была ваша проблема / ошибка? Каков тип P.BMCSERVICEDESK__OPEN_DATE_TIME __ C?

РЕДАКТИРОВАТЬ:

Используйте это сначала:

ВЫБРАТЬ тип_данных, длина_данных FROM all_tab_columns где 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)

Вы можете использовать c sysdate также ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...