Добавить пустые строки в таблицу в хранимой процедуре - PullRequest
1 голос
/ 02 декабря 2010

У меня есть эта таблица:

ROW_GROUP           COL_GROUP         CLAIM_COUNT      DENIAL_AMOUNT
NOT MEDIC NEC/PRE-X October 2010    6                591.50
NOT MEDIC NEC/PRE-X November 2010   8                3154.48
DUPLICATE             October 2010    39               7921.78
DUPLICATE             November 2010   35               7484.17
REGISTRATION           October 2010    56               10622.55
REGISTRATION           November 2010   67               7820.69
TIMELY FILING          September 2010  6                239.00
TIMELY FILING          October 2010 67               8389.25
TIMELY FILING         November 2010   6                51127.96

Мне нужно иметь возможность добавить сентябрь (или любое поле COL_GROUP) к этой таблице с нулями в demand_count и denial_amount. ROW_GROUP и COL_GROUP генерируются динамически, поэтому я не могу просто обновить поля, это должно быть сделано в хранимой процедуре. Было упомянуто, что внешнее левое соединение может создать эти нули для меня, просто не знаю как. Любые предложения будут полезны.

Было предложено использовать это заявление sql от коллеги на работе, но, похоже, оно не работает:

select #TREND.ROW_GROUP, DISTINCTTIME.COL_GROUP, #TREND.CLAIM_COUNT, #TREND.DENIAL_AMOUNT from (select distinct #TREND.COL_GROUP from #TREND) 
AS DISTINCTTIME LEFT OUTER JOIN #TREND ON 
DISTINCTTIME.COL_GROUP = #TREND.COL_GROUP

1 Ответ

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

Причина, по которой мне нужно было это сделать, заключалась в том, что построитель отчетов не рассматривал даты как фактические и не мог их изменить. Я решил это с помощью функции sql. Я публикую это здесь для всех, кто имеет дело с MDX и имеет дело со странными датами.

USE [DMDS]
GO
/****** Object:  UserDefinedFunction [dbo].[MonthFormat]    Script Date: 12/02/2010 14:02:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Function [dbo].[MonthFormat](@date varchar(25)) Returns date as 
    Begin 
        declare @retval as varchar(50) 
        select @retval = case 
            when @date like 'Jan%' then '01/01/' + RIGHT(@Date,4)
            when @date like 'Feb%' then '02/01/' + RIGHT(@Date,4)
            when @date like 'March%' then '03/01/' + RIGHT(@Date,4)
            when @date like 'Apr%' then '04/01/' + RIGHT(@Date,4)
            when @date like 'May%' then '05/01/' + RIGHT(@Date,4)
            when @date like 'Jun%' then '06/01/' + RIGHT(@Date,4)
            when @date like 'Jul%' then '07/01/' + RIGHT(@Date,4)
            when @date like 'Aug%' then '08/01/' + RIGHT(@Date,4)
            when @date like 'Sept%' then '09/01/' + RIGHT(@Date,4)
            when @date like 'Oct%' then '10/01/' + RIGHT(@Date,4)
            when @date like 'Nov%' then '11/01/' + RIGHT(@Date,4)
            when @date like 'Dec%' then '12/01/' + RIGHT(@Date,4)
            End
    return @retval
End
...