Как преобразовать запрос из Cognos SQL в T-SQL - PullRequest
0 голосов
/ 17 мая 2018

У меня есть отчет, который работает на Cognos и мы переходим на SSRS. Cognos SQL использует функцию rank. Может кто-нибудь, пожалуйста, помогите мне выяснить, как я могу написать тот же запрос в T-SQL:

rank() over (at "left"(upper(cast_char(TIMESTAMP '2018-04-30 00:00:00.0')), 3), dim_customer.concern_name 
order by XSUM(case when (cast(dim_order_date.order_date_date as date) between 
CAST(:PQ2 AS timestamp) and CAST(:PQ1 AS timestamp)) 
then invoice_lines_fact3.fare_taken else 0 end   
at "left"(upper(cast_char(TIMESTAMP '2018-04-30 00:00:00.0')),3),dim_customer.concern_name,invoice_lines_fact3.inv_line_id  
for "left"(upper(cast_char(TIMESTAMP '2018-04-30 00:00:00.0')),3),dim_customer.concern_name ) desc nulls last)  as  Rank1,`

, а также для этого, где фильтр условия:

((cast(dim_order_date.order_date_date as date) between _add_years(cast(TIMESTAMP '2018-04-01 00:00:00.0' as date),(-1)) and CAST(:PQ1 AS timestamp))
   and (((dim_route.AIRLCD in ('CC','AA')) and (dim_route.END_DATE < CAST(:PQ2 AS timestamp))) 
   or (dim_route.END_DATE is NULL)))

1 Ответ

0 голосов
/ 19 июля 2018

Функция ранга () доступна в 2008 году.

Посмотрев на ваш код, у вас есть команда "XSUM".

Разбираться с этим нужно в первую очередь. Ниже приведена ссылка на решение (в стеке).

Преобразование отчетов Cognos в SSRS, что делает команда XSUM?

Потенциально, исправление этого позволит вашей функции ранга работать.

...