【发布时间】:2014-12-26 05:57:45
【问题描述】:
我有 3 个表 table1、table2 和 table3,它们之间没有任何关系。
mysql> select * from table1;
+-----------+--------+---------+
| scname | sccode | samount |
+-----------+--------+---------+
| CustomerA | C1 | 20000 |
| CustomerB | C2 | 10000 |
+-----------+--------+---------+
sccode 是客户主表的外键。
mysql> select * from table2;
+--------------+---------+---------------+----------+--------+---------+
| raccname | ramount | raccname2 | ramount2 | raccid | racc2id |
+--------------+---------+---------------+----------+---------+--------+
| CustomerA | 10000 | Secured Loans | 10000 | C1 | 5 |
| CustomerB | 12000 | SupplierB | 12000 | C2 | S2 |
| Fixed Assets | 1000 | SupplierB | 1200 | 4 | S2 |
+--------------+---------+---------------+----------+--------+---------+
raccid 和 racc2id 分别是 raccname 和 raccname2 的代码,但它们与表没有关系
mysql> select * from table3;
+--------------+----------+---------------+-----------+--------+----------+
| pyaccname | pyamount | pyaccname2 | pyamount2 |pyaccid | pyacc2id |
+--------------+----------+---------------+-----------+--------+----------+
| SupplierA | 13000 | Secured Loans | 15000 | S1 | 5 |
| Fixed Assets | 12000 | SupplierB | 12000 | 4 | S2 |
+--------------+----------+---------------+-----------+--------+----------+
pyaccid 和 pyacc2id 分别是 pyaccname 和 pyaccname2 的代码,但它们与表没有关系。
我需要像这样的输出
+--------------+---------+
| account | amount |
+--------------+---------+
| CustomerA | 30000 |
| CustomerB | 22000 |
| Fixed Assets | 13000 |
| Secured Loans| 25000 |
| SupplierA | 13000 |
| SupplierB | 25200 |
+--------------+---------+
表示按原样添加公共记录和唯一记录。
【问题讨论】:
-
什么是“客户主表”?您描绘的表格分别命名为
table1、table2和table3,“它们之间没有任何关系”。您是如何在最终结果列表中汇总该数量的 - 根据给定的数据,它似乎只是虚构的?顺便说一句,可以通过将GROUP BY与单值/组/标量函数 -sum()结合使用来完成在公共行中添加列值的技巧。 -
该帐户名称属于已创建的主帐户之一。虽然 raccname,raccname2,pyaccname & pyaccname 可以有来自任何一个 master 的记录,所以我无法添加外键。
-
怎么来的:|供应商B | 25200 | ...到您需要的输出?
-
供应商B 12000+12000+1200=25200
标签: mysql