在sql中组合两个表

时间:2012-08-09 11:08:56

标签: sql-server-2008

通过使用Sql server 2008,我可以返回两个表结果,如

College    Department   Course    Section   Passed

  X           CS         B.Sc        A        30
  X           CS         B.Sc        B        12

和第二个结果

College    Department   Course    Section   Failed

  X           CS         B.Sc        A        23
  X           CS         B.Sc        B        42

这里,加入一个额外的表而不是第一个,如果我使用相同的查询同时获得传递和失败的计数,则计数出错,那就是使用两个不同的查询。

我试图将这两个表结合起来,得到像

这样的结果
College    Department   Course    Section   Passed   Failed

  X           CS         B.Sc        A        30       23
  X           CS         B.Sc        B        12       42

但我不知道如何做到这一点,任何人都可以帮助我在这里,谢谢你提前。

注意:这两个查询中加入了大约3到5个表。

3 个答案:

答案 0 :(得分:2)

select a.*b.failed
from ([first result query]) a
INNER JOIN ([second result query]) b on a.college=b.college and a.Department=b.Department and a.Course=b.course and a.Section=b.Section

答案 1 :(得分:1)

使用案例声明

select College,    Department ,  Course  ,  Section ,
       sum(case when <pass condition> then 1 else 0) as Passed  ,
       sum(case when <fail condition> then 1 else 0) as Failed
from <table1>
join <table2>
on (condition)
group by College,    Department ,  Course  ,  Section

答案 2 :(得分:0)

您可以将内部联接用于所需的输出。

例如

Select emp.name,emp.salary,Q.qualification from employee emp inner join qualification  Q.empid=emp.empid

有关详细信息,请参见

https://www.w3schools.com/sql/sql_join_inner.asp/

https://avtartime.com/sql-inner-join-with-examples/