Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 基于其他表中使用的外键访问表中的所有行_Sql - Fatal编程技术网

Sql 基于其他表中使用的外键访问表中的所有行

Sql 基于其他表中使用的外键访问表中的所有行,sql,Sql,我是SQL新手,所以在尝试了很多之后,我找不到合适的解决方案 在堆栈溢出上。这就是我发布问题的原因。[可能是重复的问题 [问题] 我有两张表T1和T2。 结构如下: Tables: T1: Task Category Estimated_Cost 1 9100 100 2 9100 15 3 9100 6 4 9200 8 5

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

我有两张表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 

要对此使用哪个查询?

Hmmm。这里有一种方法:

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;

嗨,谢谢。它正在工作。但在MySQL工作台中,它显示返回的2行,但不显示为表中的行。您好,我重新启动了MySQL工作台。现在它正在展示桌子。谢谢。你能研究一下这个问题吗:问题的一半(特别是当你刚接触某件事时)是知道如何描述它,知道该问什么:你想要的是
估计成本
实际成本
,按
类别分组。为了获得
实际成本的总和
,您需要将
任务
上的两个表连接起来。根据表中的数据类型和输出内容,您可能希望执行左联接或内部联接。祝你好运
select *
from
     (select t1.category, sum(t1.estimated_cost) estimated_cost
      from t1
      group by t1.category
     ) A
join
     (select t1.category, sum(t2.actual_cost) actual_cost
      from t2 
      join t1 on t1.task = t2.task
      group by t1.category
     ) B
on A.category = B.category