首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL:通过多个表获取客户的总份额

SQL:通过多个表获取客户的总份额
EN

Stack Overflow用户
提问于 2011-10-11 06:30:07
回答 1查看 87关注 0票数 1

我有3个表customer (cid,name,phone)和transactions (cid(参考),fundid,date,shares)和fund (fundid,fund_name)。

我正在尝试编写一个sql查询,以获得每个基金的每个客户的股票总数。

以下是插入示例:

代码语言:javascript
复制
INSERT INTO CUSTOMER(1, 'Alex', '123456678');

INSERT INTO CUSTOMER(2, 'Bill', '6323450236');

INSERT INTO CUSTOMER(3, 'Marie', '8568289912');



INSERT INTO FUND (1, 'Docotel');

INSERT INTO FUND (2, 'Armen');

INSERT INTO FUND (3, 'TD');




INSERT INTO TRANSACTIONS(1, 2, '2010-2-12', 234); (means shares bought)

INSERT INTO TRANSACTIONS(3, 1, '2010-4-2', 192);

INSERT INTO TRANSACTIONS(1, 2, '2010-4-22', -45); (the '-' means shares sold) 

INSERT INTO TRANSACTIONS(1, 3, '2010-4-26', 220);

INSERT INTO TRANSACTIONS(3, 2, '2010-7-21', 170);

我希望sql结果看起来像这样:

代码语言:javascript
复制
Name| Fund_Name | Total_Shares |

Alex Docotel 189

Alex TD 220

Marie Docotel 192

Marie Armen 170

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-10-11 06:34:10

试试这个:

代码语言:javascript
复制
SELECT customer.name, fund.fund_name, T1.total_shares
FROM
(
    SELECT cid, fundid, SUM(shares) AS total_shares
    FROM transactions
    GROUP BY cid, fundid
) T1
JOIN customer ON T1.cid = customer.cid
JOIN fund ON T1.fundid = fund.fundid
ORDER BY customer.name
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7719408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档