请问下高手。。有没有办法能够将三条语句写成一条语句 查询出结果SELECT COUNT(UserId) FROM User
WHERE CreateDate BETWEEN _StartTime AND _EndTime;
    
SELECT COUNT(UserId) FROM User
WHERE Email <> '' AND CreateDate BETWEEN _StartTime AND _EndTime;
    
SELECT COUNT(UserId) FROM User
WHERE Email <> '' AND IsEmailVerified = 1 AND CreateDate BETWEEN _StartTime AND _EndTime;

解决方案 »

  1.   

    SELECT COUNT(UserId) FROM User
    WHERE CreateDate BETWEEN _StartTime AND _EndTime
    union all  
    SELECT COUNT(UserId) FROM User
    WHERE Email <> '' AND CreateDate BETWEEN _StartTime AND _EndTime
    union all
    SELECT COUNT(UserId) FROM User
    WHERE Email <> '' AND IsEmailVerified = 1 AND CreateDate BETWEEN _StartTime AND _EndTime;
      

  2.   

    恩 不好意思 刚刚中午去吃饭了 呵呵 是我没说清楚,ACMAIN_CHM大神写的语句我知道 呵呵 但是不是我想要的效果。。我是打算把语句写到存储过程里的 所以想返回的是三个字段而不是一个集合。。
    类似于 select a,b,c from table; 直接取得a,b,c三个参数。
    select 
    (
    (select COUNT(UserId) From User WHERE CreateDate BETWEEN '1999-0-0' AND '2012-0-0') ,
    (SELECT COUNT(UserId) FROM User WHERE Email <> '' AND CreateDate BETWEEN '1999-0-0' AND '2012-0-0'),
    (SELECT COUNT(UserId) FROM User WHERE Email <> '' AND IsEmailVerified = 1 AND CreateDate BETWEEN '1999-0-0' AND '2012-0-0')
    );我原本打算这样写的,不过报错了。哎 请大神在帮帮忙吧 帮我看看改如何去改。。
      

  3.   

    select  
    (select COUNT(UserId) From User WHERE CreateDate BETWEEN '1999-0-0' AND '2012-0-0') a ,(SELECT COUNT(UserId) FROM User WHERE Email <> '' AND CreateDate BETWEEN '1999-0-0' AND '2012-0-0') b ,(SELECT COUNT(UserId) FROM User WHERE Email <> '' AND IsEmailVerified = 1 AND CreateDate BETWEEN '1999-0-0' AND '2012-0-0') c
    ;这样?