【发布时间】:2020-02-01 20:21:13
【问题描述】:
我有 4 个表:第一个是 client 表,其中包含客户信息,client_id 作为自增主键。
第二个和第三个在结构上是相同的:它们用于跟踪参加 2 个不同的治疗计划。它们每个都有一个主键和一个用于跟踪客户端的 client_id 列。其中一个字段包含我想求和的单位。
最后一个表格包含治疗师的信息。
基本上我想从两个考勤表中提取每个客户的总单位数。
我尝试了 LEFT JOINS 无济于事。我也尝试了 UNION ALL,但无法对单位求和。
这就是表格的外观:
客户:
+---------------------------------------+
| client_id | f_name | l_name | th_id |
|-----------|----------|--------|-------|
| 1 | sherlock | holmes | 1 |
| 2 | john | watson | 4 |
| 3 | hercule | poirot | 3 |
| 4 | jane | marple | 2 |
+---------------------------------------+
治疗师:
+--------------------------+
| th_id | f_name | l_name |
|-------|---------|--------|
| 1 | james | kirk |
| 2 | mr | spock |
| 3 | bones | mccoy |
| 4 | nyota | uhura |
+--------------------------+
参加:
+-------------------------------+
| it_id | client_id | units |
|-----------|-----------|-------|
| 1 | 1 | 4 |
| 2 | 1 | 4 |
| 3 | 1 | 0 |
| 4 | 1 | 2 |
| 5 | 4 | 0 |
| 6 | 4 | 4 |
| 7 | 4 | 0 |
| 8 | 4 | 2 |
+-------------------------------+
出席人数:
+-------------------------------+
| it_id | client_id | units |
|-----------|-----------|-------|
| 1 | 1 | 16 |
| 2 | 1 | 16 |
| 3 | 1 | 0 |
| 4 | 1 | 12 |
| 5 | 4 | 0 |
| 6 | 4 | 14 |
| 7 | 4 | 8 |
| 8 | 4 | 10 |
+-------------------------------+
结果应该是这样的:
+------------------------------------------------------------+
| client_id | total_units_it | total_units_psr | therapist |
|-----------|----------------|-----------------|-------------|
| 1 | 10 | 44 | james kirk |
| 4 | 6 | 32 | mr spock |
+------------------------------------------------------------+
请原谅原始表示,请不要问为什么表格设计成那样... ;-) 另外,我显然忽略了许多与问题无关的其他字段,例如日期等。
任何建议将不胜感激。
谢谢!
【问题讨论】: