MySQL按查询分组,但有一个查询我需要转换货币汇率&;合并结果
我有一张带菲尔德的桌子 id | Customer | Currency Type | Sales Amt | Date ===================================================== 1 | ClientA | Dollar | 100$ | Timestamp 2 | ClientB | Rupees | 1500Rs | Timestamp id |客户|币种|销售金额|日期 ===================================================== 1 | ClientA |美元| 100$|时间戳 2 |客户B |卢比| 1500卢比|时间戳 我正在尝试类似于MySQL按查询分组,但有一个查询我需要转换货币汇率&;合并结果,sql,group-by,Sql,Group By,我有一张带菲尔德的桌子 id | Customer | Currency Type | Sales Amt | Date ===================================================== 1 | ClientA | Dollar | 100$ | Timestamp 2 | ClientB | Rupees | 1500Rs | Timestamp id |客户|币种|销售金额|日期 =========
“按货币类型从表中选择货币类型、金额(销售金额),其中开始和结束组之间的日期”
但我想先计算所有卢比的金额,然后将它们与美元类型合并。
总额(销售金额)*45(换算率),其中货币为卢比”
因此,结果我只能得到一种货币类型,即美元金额,这样我就可以在此基础上显示报告
这可能吗?请任何人帮我提出这样的疑问或任何其他出路
谢谢您可以使用已搜索的
案例
语句来确定每条记录是否需要将其转换为美元
SELECT SUM(CASE [Currency Type]
WHEN 'Rupees' THEN [Sales Amt] * 45
WHEN 'Dollar' THEN [Sales Amt]
WHEN 'Other' THEN [Sales Amt] * ???
ELSE [Sales Amt]
END)
FROM Table
WHERE Date BETWEEN Start and End
创建表CurrencyConvertTable 具有下表结构和数据
| CurrencyType | CurrencyConvertRate |
======================================
| Dollar | 1 |
| Rupees | 45 |
像这样的Noq查询
Select CurrencyType
,Sum(SalesAmt*CurrencyConvertRate)
from MainTable mt
JOIN CurrencyConvertTable ct
ON mt.CurrencyType = ct.CurrencyType
where Date between start and End
group by CurrencyType
处理更多货币类型的最佳方法。我建议使用自己的货币换算系数表
conversion_id source target factor
1 Rupees Dollar 45.0
2 Dollar Dollar 1.0
现在,您可以加入货币转换表并动态计算总和,而无需在END构造时使用CASE。
如果您还设计了一个货币表,并且只使用货币ID,那就更好了