2012-04-02 50 views

回答

1

select total, xxx 
from (
    SELECT total, (select my_count from x where .. etc) as XXX 
    FROM sales 
    ) 
WHERE XXX > 0; 
+0

如果我尝试这个,我得到一种错误,不能修复http://stackoverflow.com/questions/1888779/every-derived-table-must-have-its-own-alias – Brettski 2012-04-02 00:40:39

+0

@Brettski:只是分配FROM FROM子查询的别名,如:... FROM ... ... some_alias WHERE ...' – 2012-04-02 06:10:26

0

这是一个很奇怪的查询。
为什么不把WHERE条件放在子查询中?

SELECT total, (select my_count from x where .. AND my_count > 0) as XXX 
FROM sales 

而且出现错误是因为您无法将子查询的结果用作列名。

+0

我有几列来自子查询,基本上是在过去1,3,6个月的订单,想根据结果做一些过滤 – Brettski 2012-04-02 00:17:40

+0

但是你没有加入主要查询的任何内容。你能提供一个更好的例子吗? – rgafonso 2012-04-02 00:47:40

+0

如果my_count <= 0,此查询将返回'total,null',并且不会过滤记录。我相信子查询中的'..'部分,他正在用'sales'表做些事情。 – 2012-04-02 19:12:12