2012-11-11 51 views
0

我有这样的查询与子查询as clicks 我想做的事情,然后where clicks > 0,但我得到一个错误,这不是一个公认的列。使用父母嵌套查询结果WHERE子句

SELECT top 10 *, (select count(*) FROM po_events aeclk WITH(NOLOCK) where (aeclk.[source] = ae.[source]) as clicks 

FROM archived_events ae with(NOLOCK) 
where clicks > 0 
+1

可能重复(http://stackoverflow.com/questions/8370114/referring-to-一列别名在-A-where子句) – Pondlife

回答

1

虽然我与评论,这是一个可能重复的同意,我也想指出,相关子查询可能是低效的;二鸟一石,你可以这样做:的[参考列别名WHERE子句]

SELECT TOP 10 
     ae.* 
     , aeclk.clicks 
FROM archived_events ae 
     JOIN (SELECT source 
         , COUNT(*) AS clicks 
       FROM  po_events 
       GROUP BY source 
      ) aeclk ON aeclk.[source] = ae.[source] 
WHERE clicks > 0