SQL';s查询添加值

SQL';s查询添加值,sql,sql-server,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/201

我希望您能在这个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”值(第2列) 但我有一些是欧元的 表1的第3列显示了该日期的多拉值(FK_TAB_费率)


sql查询是什么

我猜您的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'
下面是一个演示

这产生了35.72。手动操作,4.5+1.3+22(1.36)=35.72


祝你好运。

我猜你的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'
下面是一个演示

这产生了35.72。手动操作,4.5+1.3+22(1.36)=35.72

祝你好运。

试试这样的(未经测试)

试试这样(未经测试)

试试这个:

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'
试试这个:

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'

你到底想做什么?如果
COLUMN1
的值为
DOLAR
,而
COLUMN0
的值为
B
,则只需添加即可?或者你是想转换欧元还是别的什么?这个问题很难理解。你到底想做什么?如果
COLUMN1
的值为
DOLAR
,而
COLUMN0
的值为
B
,则只需添加即可?或者你是想转换欧元还是别的什么?这个问题很难理解。