sql - 根据其他表中使用的外键访问表中的所有行

标签 sql

我是 SQL 新手,所以在尝试了很多之后,我找不到合适的解决方案 在 Stackoverflow 上。这就是我发布问题的原因。[可能是重复的 问题]

我有 2 个表 T1 和 T2。 结构如下:

Tables:
T1:
Task     Category     Estimated_Cost
 1        9100           100
 2        9100            15
 3        9100             6
 4        9200             8
 5        9200            11

T2:
Voucher    Task        Actual_Cost
  1          1            10
  2          1            20
  3          1            15
  4          2            32
  5          4             8
  6          5             3
  7          5             4

我想要的结果是:

Category     Estimated_Cost     Actual_Cost
 9100           121                77
 9200            19                15 

为此使用哪个查询?

最佳答案

嗯。 。 。这是一种方法:

select category, sum(estimated_cost) as estimated_cost, sum(actual_cost) as actual_cost
from ((select t1.category, t1.estimated_cost, 0 as actual_cost
       from t1
      ) union all
      (select t1.category, 0, t2.actual_cost
       from t2 join
            t1
            on t1.task = t2.task
      )
     ) cc
group by category;

关于sql - 根据其他表中使用的外键访问表中的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52322209/

相关文章:

java - 从 SQL DDL 语句创建 Java 对象

mysql - 在单个查询中多次使用相同的子查询

c# - 带参数的 SQLCommand 不再更新我的表

sql - Toad for Oracle 如何一次性导出数据? (无需先运行它来显示数据)

mysql - 列出表中的元素,添加其他表中的引用并在 ORDER BY 中使用它们

mysql - GROUP BY 只有一列序列的第一行?

sql - 如何在Lua中将SQL日期转换为字符串?

sql - 在数据库中存储时间值并获取两个时间字段之间的差异

java - 通过java更改mysql密码

SQL - 连接问题