SQL - 从一个select到另一个select的结果

时间:2014-10-28 06:29:01

标签: sql select relational-algebra

我有两个子查询,我想从中选择两个不同的列,但我不知道如何。已经尝试了很长时间了。

换句话说,我需要这样做:

select distinct A, B 
from (select * from selectstatement 1, selectstatement 2);

我拥有的就是这个。

我有两个表table1和table2,每个表都有三个类型。

我有:

selectstatement 1: 
      select * 
      from table1, table2;

selectstatement 2: 
      select distinct table1.A, table1.B, table2.A, table2.B 
      from table1, table2 
      where (table1.A > table1.B and table2.A > table2.B) 
         or (table1.B > table1.A and table2.B > table2.A);

我现在遇到的问题是从这两个select语句中选择A和B列,例如select distinct A, B from (select * from selectstatement 1, selectstatement 2);

但我所尝试的一切都没有奏效。

这不起作用:

select distinct P.A, P.B, T.A, T.B 
from (    select distinct table1.A, table1.B, table2.A, table2.B 
          from table1, table2 
          where (table1.A > table1.B and table2.A > table2.B) 
             or (table1.B > table1.A and table2.B > table2.A)) as P, 
     (select * from table1, table2) as T;

但如果我应该像#34; select distinct A, B from (select * from selectstatement 1, selectstatement 2);"那样做也是错的,不是吗?

2 个答案:

答案 0 :(得分:0)

试试这段代码。

     select t1.ks, t1.[# Tasks], coalesce(t2.[# Late], 0) as [# Late]
from 
    (SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks) t1
left join
    (SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks) t2
on
    t1.ks = t2.ks

答案 1 :(得分:-1)

反引号键位于大多数键盘的左上角。)

与代码块类似,代码跨度将以等宽字体显示。 Markdown和HTML不适用于它们。请注意,与代码块不同,代码跨度要求您手动转义内的任何HTML!

如果您的代码本身包含反引号,则可能必须使用多个反引号作为分隔符:

名称Tuple`2是有效的.NET类型名称。