是否可以将数据透视/转换查询与另一个表组合(以添加其他数据列)?

时间:2011-08-16 19:06:15

标签: sql oracle ms-access odbc

我有一个相对简单的数据透视/转换查询,如下所示:

TRANSFORM Sum(T1.VALUE) As SumOfVal
SELECT    T1.DATE, T1.HOUR
FROM      T1
WHERE     (T1.DATE = #1/1/2010#)          AND
          (T1.NAME IN ("name1", "name2")) AND
          (T1.TYPE IN ("type1", "type2"))
GROUP BY  T1.DATE, T1.HOUR
PIVOT     T1.NAME + " " + T1.TYPE

返回给我这样的东西:

  DATE   | HOUR | name1 type1 | name1 type2 | name2 type1 | name2 type2
------------------------------------------------------------------------
1/1/2010 |   1  |    222.22   |   123.11    |   1241.23   |   133124
1/1/2010 |   2  |    252.22   |   121.11    |    121.23   |   122150

等等。现在,在另一个表(具有类似的布局)中,我有更多的读数,我想作为另一列加入到查询的末尾。 DATEHOUR会完全匹配,我可以在表格中手动指定要使用的名称/类型。

我遇到的问题是,如何将其添加到查询中?我尝试INNER JOIN FROM子句中的两个表,然后将列名添加到SELECT子句中,但它抱怨字段名称不是聚合函数的一部分。我还尝试将其添加到TRANSFORM子句(和PIVOT子句)中,但我认为您不能为它们指定多个字段。

这可以在使用SQL的单个查询中执行,还是需要单独执行这两个查询?


最后一个注意事项 - 在INNER JOIN表格T1上加T2日期/小时值后,查询仍然有效(应该如此)。我只是不知道如何包含实际读数/值,因此它显示在结果中......

1 个答案:

答案 0 :(得分:1)

为什么不将它作为子查询并加入适当的ID?

例如

select a.*, b.extracolumn
from othertable b
join ( ... ) a
on a.ID = b.ID

由于上述查询中的group by,您收到的错误。如果您作为子查询完整地加入它,则不应该有同样的问题。

相关问题