Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 подскажите, как конвертировать  [new]
Amyster
Member

Откуда: Moldova
Сообщений: 5
имеются следующие таблицы

IF OBJECT_ID('tempdb..#Currency_Lookup') IS NOT NULL DROP TABLE #Currency_Lookup
IF OBJECT_ID('tempdb..#FORECAST_PREMIUMS') IS NOT NULL DROP TABLE #FORECAST_PREMIUMS
IF OBJECT_ID('tempdb..#FORECAST_Claims') IS NOT NULL DROP TABLE #FORECAST_Claims
IF OBJECT_ID('tempdb..#Rate_Of_Exchange') IS NOT NULL DROP TABLE #Rate_Of_Exchange

-- Create Temporary table #Currency_Lookup
Create table #Currency_Lookup
(
	Currency_Key int,
	Currency  varchar(5),
	Currency_DESC Varchar(255)
)

Insert into #Currency_Lookup
Values 
( 46, 'CAD' , 'Canadian Dollar' ),
( 80,'GBP' ,'British Pound Sterling'),
( 215, 'USD' ,'US Dollar')


-- Create Temporary table #Rate_Of_Exchange
Create table #Rate_Of_Exchange
(
	Currency_Key int,
	Rate_Of_Exchange_key  int,
	Rate_of_Exchange decimal (8,5)
)

Insert into #Rate_Of_Exchange
Values 
( 46, 3 , 1.59081 ),
( 80, 1 ,1),
( 215, 2 ,1.62289)


-- Create Temporary table #FORECAST_PREMIUMS

Create table #FORECAST_PREMIUMS
(
	Syndicate_Key int,
	Durg_Key int,
	Currency_Key int,
	Year_Of_Account varchar(10),
	Forecast_Premium int,
	CUML_EPI_Amount int 
)

Insert into #FORECAST_PREMIUMS
Values 
(NULL, NULL, NULL, 'UNKNOWN', 0,6),
( 3, 54, 46 ,'2000' , 109105 ,0 ),
( 3 ,54, 46, '2001' , 128645 , 128646),
( 5, 47, 80, '2002' , 117829, 6333),
( 6, 47, 80, '2002' , 125471, NULL),
( 6, 60, 80, '2003' , 82371, 82371),
( 10, 98, 215, '2006', 2093825, 77888),
( 10, 98, 215, '2007', 11111938, 4523645)

-- Create Temporary table #FORECAST_Claims
Create table #FORECAST_Claims
(
	Syndicate_Key int,
	Durg_Key int,
	Currency_Key int,
	Year_Of_Account varchar(10),
	Outward_Contract_Referrence Varchar(25),
	Forecast_Claims int,
	Ultimate_Profit_Comission int 
)

Insert into #FORECAST_Claims
Values 
(NULL, NULL, NULL, 'UNKNOWN', 'UNKNOWN', 0,-45),
( 5, 47, 80 ,'2002' , 'AB00ZZ021M12', -9991203 ,NULL ),
( 5, 47, 80 ,'2002' , 'AB00ZZ021M13', -4522 ,-74412 ),
( 9 ,60, 215, '2006' ,'AC04ZZ021M13', -2340299 , -895562),
( 10, 98, 46, '2007' , 'FAC0ZZ021M55', -2564123, -851298)


Select * from #Currency_Lookup
Select * from #Rate_Of_Exchange
Select * from #FORECAST_PREMIUMS
Select * from #FORECAST_Claims


Необходимо выбрать суммы для Forecast_Premium и Cumulative EPI Amount сгруппировав по Year_of_Account. но данные должны быть только в одной валюте GBP.

вот мой запрос

SELECT 

isnull(cast (SUM(Forecast_Premium)as varchar(25)),'UNKNOWN') AS Total_Forecast_Premium
, isnull (cast (SUM(CUML_EPI_Amount)as varchar(25)),'UNKNOWN') AS Total_CUML_EPI_Amount

,isnull(cast(fp.Currency_Key as varchar(25)), 'UNKNOWN' ) as Currency_Key
,isnull (fp.Year_Of_Account,'0') AS Year_Of_Account


FROM #FORECAST_PREMIUMS fp

FULL JOIN #Currency_Lookup cl  ON  (cl.Currency_Key = fp.Currency_Key)
FULL JOIN #Rate_Of_Exchange ro ON (ro.Currency_Key = fp.Currency_Key)

GROUP BY   fp.Currency_Key,fp.Year_Of_Account


подскажите, пожалуйста, как его доработать, чтобы данные были все в одной валюте.
12 янв 12, 13:28    [11891927]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить