货币计算器SQL Server 2012

时间:2014-07-17 10:47:48

标签: sql

我有两个表,Products和ExchangeRates,我正在尝试计算汇率。我在SQL中创建了许多计算查询但由于某种原因,这似乎没有输出任何东西,我尝试以多种不同的方式格式化查询,也许我没有看到它正确。但到目前为止我已经

Select ExchangeRates.Rate * sum(Products.Cost) as Total from ExchangeRates
INNER JOIN Products ON Products.ProductsID=ExchangeRates.ID
WHERE ExchangeRates.CurrencyCode = 'EUR' Group BY ExchangeRates.Rate

我认为当我把WHERE子句放入时,因为没有它,它会计算(但只有最后输入的速率),但是我需要指定我想要它计算的速率。

汇率表包括

ID (int), CurrencyCode(nchar (3), Rates(decimal, (10,5)
--Data in this table ID 1, CurrecnyCode: EUR, Rates: 1.26

产品表

ProductID, Itemdescript(nvarchar), CurrecncyCode, Cost(decimal(10,2)

虽然我的表格中都有数据,但没有输出

已更新

以下答案是正确的,但我也注意到我的ExchangeRates表中没有'GBP',这就是为什么它不会计算。我想将GBP计算为欧元,但我猜它在ExchangeRates表中需要GBP

1 个答案:

答案 0 :(得分:0)

这是你的查询,用表别名清理了一下:

Select er.Rate * sum(p.Cost) as Total
from ExchangeRates er INNER JOIN
     Products p
     ON p.ProductsID = er.ID
WHERE er.CurrencyCode = 'EUR'
Group BY er.Rate;

on子句高度可疑:汇率id似乎不太可能是产品ID。 CurrencyCode

需要其他字段,例如join
Select er.Rate * sum(p.Cost) as Total
from ExchangeRates er INNER JOIN
     Products p
     ON p.CurrencyCode = er.CurrencyCode
WHERE er.CurrencyCode = 'EUR'
Group BY er.Rate;