1

だからこれが私の問題です:

2つの異なるSQL選択クエリがあり、どちらも値(1425000と2850000)を返します。今やりたいことは次のとおりです。

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

しかし、クエリ1とクエリ2は静かで複雑なクエリであり、カウント関数と合計関数が含まれています。

どうすればこれを解決できますか?

4

4 に答える 4

3
declare @q1 int, @q2 int

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

select @q1 / @q2
于 2012-10-30T17:15:45.643 に答える
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を参照してください。

于 2012-10-30T17:17:35.103 に答える
1

このようなもののビューを作成できます。

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

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

次に、それらを実行できます。

select vResult1/vResult2;

複雑なクエリのパラメータが必要な場合は、ストアドプロシージャを使用できます。

于 2012-10-30T17:24:14.020 に答える
1

変数を使用する必要があると思います。すべてを1つのクエリで記述したくない場合。

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

Select @query1_result / @query2_result
于 2012-10-30T17:24:24.557 に答える