SQL Query添加值

时间:2013-02-12 23:28:16

标签: sql sql-server

我希望你能在这个SQL查询中帮助我。 (SQL SERVER) 我有这些表

TABLE1
COLUMN0 COLUMN1 COLUMN2 COLUMN3
A        DOLAR    2.5   18/02/2013
A        DOLAR    1.5   18/02/2013
B        EURO     22    19/02/2013
B        DOLAR    4.5   19/02/2013
B        DOLAR    1.3   18/02/2013
C        EURO     0.5   19/02/2013

TAB_RATES
COLUMN0    COLUMN1
18/02/2013 1.35
19/02/2013 1.36

我想以美元添加所有'B'值(COLUMN2) 但我有一些欧元 TABLE1中的Column3显示该日期的dolar值(FK_TAB_RATES)

什么是SQL查询?

3 个答案:

答案 0 :(得分:2)

我的猜测是你的Tab_Rates表是给定日期的货币乘数。如果是这样,这样的事情可能有用:

SELECT SUM (T.Column2 *
    CASE 
        WHEN T.Column1 = 'Euro'
        THEN TR.Column1
        ELSE 1.0
    END) SummedAmt
FROM Table1 T
    JOIN Tab_Rates TR ON T.Column3 = TR.Column0
WHERE T.Column0 = 'B'

这是一个SQL Fiddle来演示它。

这产生35.72。手动完成,4.5 + 1.3 + 22(1.36)= 35.72

祝你好运。

答案 1 :(得分:1)

尝试这样的事情(未经测试)

select t1.col0,
    sum (case when t1.col1 = 'euro' then t1.col1 * rate.r
              else t1.col1 end) as s
from t1
inner join rate on rate.r = t1.col3
group by col0

答案 2 :(得分:0)

试试这个:

SELECT SUM (T.Column2 *
    CASE 
        WHEN T.Column1 = 'Euro'
        THEN TR.Column1
        ELSE 1.0
    END) SummedAmt
FROM Table1 T
    JOIN Tab_Rates TR ON T.Column3 = TR.Column0
WHERE T.Column0 = 'B'