Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按Oracle SQL中的选定变量分组_Sql_Oracle_Select_Group By - Fatal编程技术网

按Oracle SQL中的选定变量分组

按Oracle SQL中的选定变量分组,sql,oracle,select,group-by,Sql,Oracle,Select,Group By,很抱歉标题不明确,但我真的不确定我要找的是什么 我有几个表格,不一定适合报告,你猜到了,我想从中报告。我也是SQL新手,这会让事情变得复杂一些 Table1: ID Created EventName 1 1/1/14 Event1 2 1/1/14 Event1 3 2/1/14 Event1 4 2/1/14 Event2 5

很抱歉标题不明确,但我真的不确定我要找的是什么

我有几个表格,不一定适合报告,你猜到了,我想从中报告。我也是SQL新手,这会让事情变得复杂一些

Table1:

ID          Created      EventName
1           1/1/14       Event1
2           1/1/14       Event1
3           2/1/14       Event1
4           2/1/14       Event2
5           3/1/14       Event3

Table2:

EventID     EventType    Value
1           Var1         123
1           Var2         XYZ
1           Var3         ABC321
2           Var1         987
2           Var4         Dumbledore
2           Var2         WXY
2           Var6         Hamburger
3           Var1         456
我发现如果我使用下面的SQL

SELECT T1.EventName,
  Count
  ((Select T2.Value
  From Table2.T2
  Where T1.ID = T2.EventID
  And T2.EventType = 'Var2'
  )) as Var2Count

From Table1 T1

Group By T1.EventName
我应该得到如下输出:

EventName    Var2Count
Event1       1
Event2       1
然而,我渴望获得以下输出:

EventName    Var2Name
Event1       XYZ
Event2       WXY
我知道这是关于我如何构造Group By的,更重要的是在最后一个From语句之后定义Var2Name变量,但是我有点不知道该怎么做

好吧,我认为这更接近我想要的,但仍然存在一些问题:


谢谢,我确实需要加入。。。但我认为我的下一步功能将成为一个问题

我现在有了这个:

select Table1.EventName, Table2.Value,

  count
  ((select Table2.Value
  from Table2
  where Table1.ID = Table2.EventID
  and Table2.EventType in ('Var2')
  )) as LineCount,

  sum
  ((select Table2.Value
  from Table2
  where Table1.ID = Table2.EventID
  and Table2.EventType = 'Var7'
  and Table2.Value not like '%undefined%'
  )) as TotalCost

from Table1
inner join Table2
on Table1.ID = Table2.EventID

where Table2.EventType in ('Var2','Var7')

Group By Table1.EventName, Table2.Value;
我只是不知道如何将每个分组表的值添加到新列中

输出如下所示:

EventName    Var1Name    Var2Name     Var3Name     Var4Name    (etc)
Event1       123         XYZ          ABC321       (null)
Event2       678         LKT          (null)       765AWW
Event3       (null)      (null)       DERP         STUFF

有什么想法吗?

我想你想要的是加入,而不是聚合:

select t1.EventName, t2.Value
from table2 t2 join
     table1 t1
     on t2.EventId = t1.id
where t2.EventType = 'Var2';

谢谢,我确实需要加入。。。但我认为我的下一步功能将成为一个问题!