0

私は以下のクエリを持っています:

--Total DLs--
select sum(DLs) as DLs_Total
From
 (
Select
Count(T.Create_Dtime) As Dls
From Player_Tapjoy T 
Inner Join Player P On T.Player_Id=P.Player_Id
Where P.ReferredBy IS NULL
Union All
Select
Count(Pt.Create_Dtime) As DLs
From Player_Aux_Pt Pt
Inner Join Player P On Pt.Player_Id=P.Player_Id
Where
Pt.Site = 'AppCircle'
And P.ReferredBy IS NULL
)

このレポートを2回実行します。1回は「AndP.ReferredByisNull」、もう1回は「AndP.ReferredByisNOTNull」です。

これはケースクエリに切り替える良い機会かもしれないと思います...それで、nullの場合またはnullでない場合、1つのクエリが2つの別々の結果を生成しますか?

4

1 に答える 1

1

はい、ここでユースケースを使用できます。次のクエリはテストしていませんが、機能するかどうかを確認してください。

--Total DLs--
select sum(DLs_ReferredBy_Null) as DLs_ReferredBy_Null_Total, sum(DLs_ReferredBy_NotNull) as DLs_DLs_ReferredBy_NotNull_Total
From
 (
Select
Count(CASE WHEN P.ReferredBy IS NULL THEN T.Create_Dtime END) As DLs_ReferredBy_Null,
Count(CASE WHEN P.ReferredBy IS NOT NULL THEN T.Create_Dtime END) As DLs_ReferredBy_NotNull
From Player_Tapjoy T 
Inner Join Player P On T.Player_Id=P.Player_Id
Union All
Select
Count(CASE WHEN P.ReferredBy IS NULL THEN Pt.Create_Dtime END) As DLs_ReferredBy_Null,
Count(CASE WHEN P.ReferredBy IS NOT NULL THEN Pt.Create_Dtime END) As DLs_ReferredBy_NotNull
From Player_Aux_Pt Pt
Inner Join Player P On Pt.Player_Id=P.Player_Id
Where
Pt.Site = 'AppCircle'
)
于 2012-09-22T01:36:10.273 に答える