SQL在where子句中使用别名

时间:2014-04-18 18:23:26

标签: sql where alias

我知道别名不起作用,但无法弄清楚得到“和count_of_circs = circ_limit”的预期结果

    select libraryid,
           patronid,
           count(circ.id) as count_of_circs,
           (
               select account.circsperpatronmonth 
               from account 
               where circ.libraryid = account.libraryid
           ) as circ_limit
    from circ
    where borrowed >= '2014-04-01'
    and borrowed < '2014-04-19'
    and count_of_circs = circ_limit

    group by patronid,libraryid

2 个答案:

答案 0 :(得分:2)

您需要having子句:

select libraryid, patronid,
       count(circ.id) as count_of_circs,
       (select account.circsperpatronmonth
        from account
        where circ.libraryid=account.libraryid
       ) as circ_limit
From circ
where borrowed >= '2014-04-01' and borrowed < '2014-04-19'
group by patronid, libraryid
having count_of_circs = circ_limit;

答案 1 :(得分:0)

您需要在&#34; group by&#34;

之后添加一行
HAVING count_of_circs = circ_limit

它不是别名,它在分组后进行过滤。