所以这是我的问题:
我有两个不同的sql select查询,它们都返回一个值(1425000和2850000) 我现在想做的是:
Select (query1 / query 2)
from xxxxx
where xxxx;
但是查询1和查询2是安静的复杂查询,其中包含count和sum函数。
我该如何解决这个问题?
答案 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