gpt4 book ai didi

sql - 如何在子查询中使用外部查询中的列从另一个表中获取结果?

转载 作者:行者123 更新时间:2023-12-02 20:45:15 25 4
gpt4 key购买 nike

我正在尝试使用一个子查询从一个表中获取 hive 中另一个表的每一行的汇总结果。我知道配置单元不支持SELECT子句中的子查询,因此我试图在FROM子句中使用子查询,但是似乎配置单元也不支持相关子查询。

这是示例:表A包含日期为d1和d2的列,货币列以及其他列的帐户交易数据,我要做的是获取表B中的汇率值之和(包含货币汇率)每个帐户的日期d1和d2之间)。我正在尝试这样的事情:

SELECT 
account_no, currn, balance,
trans_date as d2, last_trans_date as d1, exchng_rt
FROM
acc AS A,
(SELECT sum(rate) exchng_rt
FROM currency
WHERE curr_type = A.currn
AND banking_date BETWEEN A.d1 AND A.d2) AS B

这是示例,表A具有帐户交易记录和日期,例如:
account    balance    trans_date    last_trans_date    currency
abc 100 20-12-2016 20-11-2016 USD
abc 200 25-12-2016 20-12-2016 USD
def 500 15-11-2015 10-11-2015 AUD
def 600 20-11-2015 15-11-2015 AUD

而表B是这样的:
curr_type     rate    banking_date
USD 50.9 01-01-2016
USD 50.2 02-01-2016
USD 50.5 03-01-2016
AUD 50.9 01-01-2016
AUD 50.2 02-01-2016
AUD 50.5 03-01-2016 and so on...

因此表格包含每种货币的每日货币汇率

最佳答案

我认为您可以使用JOINGROUP BY做您想做的事情:

SELECT a.account_no, a.currn, a.balance, a.trans_date as d2, a.last_trans_date as d1,
SUM(rate) as exchng_rt
FROM acc a LEFT JOIN
currency c
ON c.curr_type = a.currn and banking_date between A.d1 and A.d2
GROUP BY a.account_no, a.currn, a.balance, a.trans_date, a.last_trans_date;

关于sql - 如何在子查询中使用外部查询中的列从另一个表中获取结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48380695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com