0

以下查询给了我一个单行结果

Select Sum(Actions) From
(
    Select
        Count(t.Create_Dtime) As Actions
    From Player_Tapjoy T 
           Inner Join Player_Source S 
               On (T.Player_Id = S.Player_Id)
           Inner Join Feature_Group_Xref F
          On (S.Group_Id=F.Group_Id 
              And F.Feature_Name ='Try     BC') 
     Where Trunc(t.Create_Dtime) = To_Date('2012-sep-17','yyyy-mon-dd')
     Union All
     Select 
         Count(a.Create_Dtime) As Actions
     From Player_Aux_Pt A 
         Inner Join Player_Source S  
              On (A.Player_Id = S.Player_Id)
         Inner Join Feature_Group_Xref F
          On (S.Group_Id=F.Group_Id 
               and f.feature_name =     'TryBC')
    Where A.Site = 'AppCircle' 
    And Trunc(A.Create_Dtime) = To_Date('2012-sep-17','yyyy-mon-dd')
 )

我现在想在结果中添加一个约束:仅在 2012 年 9 月 12 日之前创建帐户的用户。

在我的数据库语言中:只有具有trunc(create_dtime) < To_Date('2012-sep-12','yyyy-mon-dd'). 这个trunc(create_dtime)日期来自player表格。

我可以player通过使用另一个内部联接将此表映射到当前表吗?

4

1 回答 1

1

您的要求并不完全清楚,显然我不得不猜测您的数据模型。我假设该Player表每行有一行,Player_Id即它是与您正在查询的表的外键关系的主键端。

我已经更改了内部查询,因此它只返回一组行而不是聚合。然后我将内联视图(别名q)与Player表连接起来,并使用 COUNT() 而不是 SUM() 来获取图形。

Select count(Player_Id) From
(
    Select
        T.Player_Id
    From Player_Tapjoy T 
           Inner Join Player_Source S 
               On (T.Player_Id = S.Player_Id)
           Inner Join Feature_Group_Xref F
          On (S.Group_Id=F.Group_Id 
              And F.Feature_Name ='Try     BC') 
     Where Trunc(t.Create_Dtime) = To_Date('2012-sep-17','yyyy-mon-dd')
     Union All
     Select 
         A.Player_Id 
     From Player_Aux_Pt A 
         Inner Join Player_Source S  
              On (A.Player_Id = S.Player_Id)
         Inner Join Feature_Group_Xref F
          On (S.Group_Id=F.Group_Id 
               and f.feature_name =     'TryBC')
    Where A.Site = 'AppCircle' 
    And Trunc(A.Create_Dtime) = To_Date('2012-sep-17','yyyy-mon-dd')
 ) q
 join player p
      on (p.Player_Id = q.Player_Id)
 where Trunc(p.Create_Dtime) < To_Date('2012-sep-12','yyyy-mon-dd')

由于我在顶部给出的原因,这可能不是您需要的确切结果,但它应该为您指明正确的方向。

于 2012-09-19T09:08:18.370 回答