2015-10-30 29 views
-1

我需要做的是將十進制數轉換爲選定的貨幣。但只有在選擇了貨幣的情況下。但我仍然需要做另一個計算。如果一種貨幣已經選擇SQL條件加入和計算在選擇

DECLARE @Currencies TABLE 
(
    exchangerate decimal(10,4), 
    currency uniqueidentifier, 
    symbol varchar(5) 
) 

INSERT INTO @Currencies 
SELECT exchangerate, @Currency, currencysymbol 
FROM TransactionCurrencyBase 
WHERE @Currency is not null AND TransactionCurrencyId = @Currency 

INSERT INTO @Currencies 
SELECT 1, null, '-' 
WHERE @Currency is null 

DECLARE @exchangerate decimal(10,4) 
SET @exchangerate = (SELECT top 1 exchangerate 
FROM   @Currencies) 

DECLARE @Symbol varchar(5) 
SET @Symbol = (SELECT top 1 symbol 
FROM   @Currencies) 

DECLARE @ProjBudget TABLE 
(
          projectname varchar(250), 
    project uniqueidentifier, 
    calcCurrency money, 
          symbol varchar(5), 
          currencyExchange decimal(10,4), 
          exchange decimal(10,4) 
) 

INSERT INTO @ProjBudget 
SELECT o.Name, pa.new_projectactivityid, CASE WHEN pa.new_activitypercentage IS NOT NULL THEN ((o.new_budgetmin/t.ExchangeRate)*@exchangerate) * 
(pa.new_activitypercentage/100.0) ELSE ((o.new_budgetmin/t.ExchangeRate)*@exchangerate) END AS Calc, currencysymbol, t.ExchangeRate, @exchangerate 
FROM OpportunityBase o join TransactionCurrencyBase t on @exchangerate != 1 AND o.TransactionCurrencyId = t.TransactionCurrencyId 
JOIN new_projectactivityBase AS pa ON o.OpportunityId = pa.new_Project 

但是這僅適用於:

我到目前爲止這是。 任何想法?

+0

MySQL如何在這裏介入? – jarlh

+0

ssrs和報告服務不應該被標記太..這應該只是SQL。其誤導。 – bot

+0

MySQL在建議的標籤中。這是一個ssrs報告的查詢,這就是爲什麼添加它。 –

回答

0

我設法做到這一點。不知道這是否是它的作品。

DECLARE @ProjBudget TABLE 
(
    project uniqueidentifier, 
    calcCurrency money, 
    calcNoCurrency money 
) 

INSERT INTO @ProjBudget 
SELECT pa.new_projectactivityid, CASE WHEN pa.new_activitypercentage IS NOT NULL THEN ((o.new_budgetmin/t.ExchangeRate)*@exchangerate) * 
(pa.new_activitypercentage/100.0) ELSE ((o.new_budgetmin/t.ExchangeRate)*@exchangerate) END AS Calc, 
CASE WHEN pa.new_activitypercentage IS NOT NULL THEN o.new_budgetmin * 
(pa.new_activitypercentage/100.0) ELSE o.new_budgetmin END AS CalcWithoutExchange 
FROM FilteredOpportunity o join FilteredTransactionCurrency t on o.TransactionCurrencyId = t.TransactionCurrencyId 
JOIN Filterednew_projectactivity AS pa ON o.OpportunityId = pa.new_Project