获取每个项目的计算(美元货币转换)总计
Posted
技术标签:
【中文标题】获取每个项目的计算(美元货币转换)总计【英文标题】:Get computed (USD currency conversion) total of each item 【发布时间】:2018-01-01 03:51:25 【问题描述】:我有一个获取每个项目总和的查询,但是当我将 SUM(d.AMT)
更改为 (SUM(d.AMT) * e.EXCHANGE_RATE) [USD Amount]
以将总和转换为美元时,我遇到了错误:
选择列表中的“EXCHANGE_RATE.EXCHANGE_RATE”列无效 因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句。
。有人可以解决我的查询吗?谢谢大家!
SELECT d.ITEM_NO, h.ITEM_TYPE, h.ITEM_STATUS, d.CURRENCY,SUM(d.AMT)--(SUM(d.AMT) * e.EXCHANGE_RATE) [USD Amount]
FROM ITEM_HDR h
JOIN ITEM_DET d ON h.ITEM_NO = d.ITEM_NO
JOIN EXCHANGE_RATE e ON d.CURRENCY = e.CURRENCY_FROM
GROUP BY d.ITEM_NO, h.ITEM_TYPE, h.ITEM_STATUS, d.CURRENCY
【问题讨论】:
【参考方案1】:您需要在 之前乘以总和:
SELECT d.ITEM_NO, h.ITEM_TYPE, h.ITEM_STATUS, d.CURRENCY,
SUM(d.AMT * e.EXCHANGE_RATE) as [USD Amount]
FROM ITEM_HDR h JOIN
ITEM_DET d
ON h.ITEM_NO = d.ITEM_NO JOIN
EXCHANGE_RATE e
ON d.CURRENCY = e.CURRENCY_FROM
GROUP BY d.ITEM_NO, h.ITEM_TYPE, h.ITEM_STATUS, d.CURRENCY;
但是,如果您希望每个项目都使用此功能,请简化 SELECT
和 GROUP BY
:
SELECT d.ITEM_NO, h.ITEM_TYPE,
SUM(d.AMT * e.EXCHANGE_RATE) as [USD Amount]
FROM ITEM_HDR h JOIN
ITEM_DET d
ON h.ITEM_NO = d.ITEM_NO JOIN
EXCHANGE_RATE e
ON d.CURRENCY = e.CURRENCY_FROM
GROUP BY d.ITEM_NO, h.ITEM_TYPE;
【讨论】:
【参考方案2】:改变
(SUM(d.AMT) * e.EXCHANGE_RATE) [USD Amount]
到
SUM(d.AMT * e.EXCHANGE_RATE) AS [USD Amount]
【讨论】:
以上是关于获取每个项目的计算(美元货币转换)总计的主要内容,如果未能解决你的问题,请参考以下文章