Конкатенация переменной даты mdx - PullRequest
1 голос
/ 03 декабря 2010

Привет, ребята, извините за беспокойство снова с ужасным вопросом

У меня есть следующий mdx, и мне нужно отформатировать дату ГГГГММДД, но у меня возникли проблемы, поскольку, как бы я это ни выразил, он не будет компилироваться в процедуре сохранения или, если это произойдет, полученный mdx не годится.

Вот код, который у меня есть, с использованием sqlserver 2000.

set @CONSULTA = 'select [' +CONVERT(VARCHAR(8), @fecha, 112)+ '] AS [' +YYYYMMDD+ '], A.* 
    from (SELECT
    isnull(CAST("[Measures].[Cajas Dia]" As float(18,6)),2) As cajas_dia,
    isnull(CAST("[Measures].[P Redondeadas]" As int),2) As pz_redondeo
          FROM openrowset(''MSOLAP'',''DATASOURCE=XXXX; Initial Catalog=XXXX; User Id=XXX;Password=XXX;'', '+ '''' + @MDX +''''+')) as A 

Ответы [ 2 ]

0 голосов
/ 03 декабря 2010

Это то, что вам нужно?

Нет стиля 122, и я предполагаю, что вы пытаетесь вернуть дату обратно как литерал и псевдоним этого столбца как YYYYMMDD?

set @CONSULTA = 'select ''' +CONVERT(VARCHAR(8), @fecha, 112)+ ''' AS [YYYYMMDD], A.* 
    from (SELECT
    isnull(CAST("[Measures].[Cajas Dia]" As float(18,6)),2) As cajas_dia,
    isnull(CAST("[Measures].[P Redondeadas]" As int),2) As pz_redondeo
          FROM openrowset(''MSOLAP'',''DATASOURCE=XXXX; Initial Catalog=OLAP_HDZ; User Id=XXX;Password=XXX;'', '+ '''' + @MDX +''''+')) as A'
0 голосов
/ 03 декабря 2010

Я думаю, что вы хотите использовать стиль 112 вместо 122 на CONVERT . Также не уверен, почему в вашем запросе есть квадратные скобки.

CONVERT(VARCHAR(8), @fecha, 112)
...