【发布时间】:2019-11-18 16:57:40
【问题描述】:
我得到了以下测试任务:编写一个查询来识别其第一笔交易是成功的卡支付超过 10 美元等值的用户
我所做的是确保交易适用于“美元等值”,并确保交易金额不以便士等最低单位表示(通过指数)。
我现在正在努力为任何用户的第一笔交易过滤我的表,并使其高于 10 美元等值(我尝试在“金额”上使用 WHERE 语句,但没有任何分配的变量它(根据 SQL Server)。
SELECT t.USER_ID,
SUM(t.amount / fx.rate / power(10, cd.exponent)) AS amount,
t.CURRENCY,
t.CREATED_DATE
FROM transactions$ t
JOIN fx_rates$ fx ON (fx.ccy = t.currency AND fx.base_ccy = 'USD')
JOIN currency_details$ cd ON cd.currency = t.currency
WHERE t.STATE = 'COMPLETED'
AND t.TYPE = 'CARD_PAYMENT'
GROUP BY t.USER_ID, t.CURRENCY, t.CREATED_DATE
ORDER BY amount DESC
查询有效,但我需要了解这两个问题!
【问题讨论】:
-
“有效”是什么意思? “没有任何分配的变量”是什么意思? PS 请在代码问题中提供minimal reproducible example--剪切&粘贴&可运行代码;具有所需和实际输出(包括逐字错误消息)的示例输入(作为表格初始化代码);标签和版本;明确的规范和解释。这包括您可以提供的最少代码,即您显示的代码可以通过您显示的代码扩展为不可以。 (调试基础。)如果您收到不理解的消息或结果,请暂停您的总体目标并调试您的误解。
-
这里的所有部分都是常见问题解答。在考虑发布之前,请始终在谷歌上搜索任何错误消息和许多清晰、简洁和准确的问题/问题/目标的措辞,带或不带您的特定字符串、名称和行号以及带和不带“site:stackoverflow.com”并阅读许多点击和答案。如果您发布问题,请使用一个短语作为标题。请参阅How to Ask 和投票箭头鼠标悬停文本。
标签: sql sql-server join