我正在开发一个使用Oracle作为后端的应用程序。我创建了两个表来记录费用明细"exp_mater"
& "exp_details"
。
exp_master(parti_id(pk),particulars);
exp_details(exp_id(pk),parti_id(fk),amount);
table exp_master
parti_id|particulars
--------|-----------
1 | incentive
2 | papers
3 | salary
table exp_details
exp_id|parti_id|amount
------ |--------|
e1 | 2 |200
e2 | 1 |100
e3 | 2 |1000
现在我想从两个表中选择所需的记录,但输出应该是:
parti_id | particulars | amount
--------------|-------------|-------
2 |papers |100
1 |incentive |200
2 |papers |100
我尝试了子查询,但我只能显示详细信息字段,而不是其他两个。是否有任何方法可以执行此操作。
提前致谢
答案 0 :(得分:0)
你可以加入两个表,然后加总金额:
SELECT m.parti_id, particulars, SUM(amount) AS amount
FROM exp_mater m
LEFT JOIN exp_details d ON m.parti_id = d.parti_id
答案 1 :(得分:0)
SELECT m.parti_id, particulars, SUM(amount) AS amount
FROM exp_mater m
Inner JOIN exp_details d ON m.parti_id = d.parti_id
这里需要内连接。感谢
答案 2 :(得分:0)
取决于您的要求,
SELECT m.parti_id, particulars, SUM(amount) AS amount
FROM exp_mater m
Inner JOIN exp_details d ON m.parti_id = d.parti_id
Group By m.parti_id, particulars
或
SELECT m.parti_id, particulars, SUM(amount) AS amount
FROM exp_mater m
LEFT OUTER JOIN exp_details d ON m.parti_id = d.parti_id
Group By m.parti_id, particulars