だからこれが私の問題です:
2つの異なるSQL選択クエリがあり、どちらも値(1425000と2850000)を返します。今やりたいことは次のとおりです。
Select (query1 / query 2)
from xxxxx
where xxxx;
しかし、クエリ1とクエリ2は静かで複雑なクエリであり、カウント関数と合計関数が含まれています。
どうすればこれを解決できますか?
declare @q1 int, @q2 int
select @q1 = (query1)
select @q2 = (query2)
select @q1 / @q2
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を参照してください。
このようなもののビューを作成できます。
create view vResult1 as
select your(
complicated(
query(
here()
)
)
);
create view vResult2 as
select another(
complicated(
query(
here()
)
)
);
次に、それらを実行できます。
select vResult1/vResult2;
複雑なクエリのパラメータが必要な場合は、ストアドプロシージャを使用できます。
変数を使用する必要があると思います。すべてを1つのクエリで記述したくない場合。
SET @query1_result = (Select ... complicated query 1)
SET @query2_result = (Select ... complicated query 2)
Select @query1_result / @query2_result