划分两个选择SQL语句的结果

时间:2012-10-30 17:10:29

标签: mysql sql select

所以这是我的问题:

我有两个不同的sql select查询,它们都返回一个值(1425000和2850000) 我现在想做的是:

Select (query1 / query 2)
from xxxxx
where xxxx;

但是查询1和查询2是安静的复杂查询,其中包含count和sum函数。

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:3)

declare @q1 int, @q2 int

select @q1 = (query1)
select @q2 = (query2)

select @q1 / @q2

答案 1 :(得分:2)

SELECT t1.val / t2.val
FROM   (SELECT val
        FROM   foo) t1
       INNER JOIN (SELECT val
                   FROM   bar) t2

(SELECT val FROM foo)(SELECT val FROM bar)可以替换为任意SELECT语句。

请参阅sqlfiddle了解演示。

答案 2 :(得分:1)

您可以为此类内容创建视图。

create view vResult1 as
select your(
         complicated(
           query(
             here()
           )
         )
       );

create view vResult2 as
select another(
         complicated(
           query(
             here()
           )
         )
       );

然后你可以运行它们:

select vResult1/vResult2;

如果您需要复杂查询的参数,可以使用stored procedures

答案 3 :(得分:1)

我认为你必须使用变量..如果你不想在一个查询中全部写出来。

SET @query1_result = (Select ... complicated query 1)
SET @query2_result = (Select ... complicated query 2)

Select @query1_result / @query2_result