我有两个包含如下字段的表。
表1
| SetID | InQty | Day |
| 1 | 10 | 1 |
| 2 | 10 | 2 |
| 3 | 10 | 3 |
表2
| SetID | OtQty | Day |
| 1 | 1 | 5 |
| 1 | 2 | 6 |
| 1 | 3 | 7 |
表2中的SetID与表1中的SetId链接。日期代替日期,仅为方便起见。预期产出,
| Day | InQty | OtQty |
| 1 | 10 | |
| 5 | | 1 |
| 6 | | 2 |
| 7 | | 3 |
空格可以填充NULL或Zero。
答案 0 :(得分:0)
看起来你只是查询set ID = 1,否则,我希望看到Set 2和3的输入/输出值。你应该能够得到一个简单的UNION
select t1.Day, t1.InQty, 0 OutQty
from Table1 t1
where SetID = 1
order by t1.Day
union select t2.Day, 0, t2.OtQty
from Table2 t2
where SetID = 1
现在,如果您希望总计跨越不同的" setID"并使它们彼此区分,只需将setID添加为列,并同时添加到group by子句中。