两个sql查询联合的一个查询的限制

时间:2014-11-12 12:09:51

标签: sql sqlite

我在尝试合并同一个表的两个sql查询的结果集时遇到了一个问题。调用表有一个调用状态列。我想要一个结果集,我希望得到20个状态为已完成的调用以及来自同一个表的联系人的计划状态的所有调用称为Calls.Then按整个结果集按日期和调用的开始时间排序。我正在尝试执行以下操作:

(SELECT * ' +
           'FROM calls ' +
           'WHERE primary_contact=' + id + ' ' +
           'AND callstatus="Planned")' ;
           'UNION (SELECT * ' +
           'FROM calls ' +
           'WHERE primary_contact=' + id + ' ' +
           'AND callstatus="Completed"' +
           'LIMIT 0,20)' +
           'ORDER BY calldate || " " ||  stime DESC ';

此查询对我不起作用。任何人都可以帮助我,让我知道我哪里错了?

提前致谢!!

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT *
  FROM calls
 WHERE primary_contact = :id AND 
       callstatus = 'Planned'
UNION
SELECT *
  FROM (
           SELECT *
             FROM calls
            WHERE primary_contact = :id AND 
                  callstatus = 'Completed'
            LIMIT 20
       )
 ORDER BY calldate, stime;