如何从嵌套表中选择

时间:2014-06-12 15:38:39

标签: sql sql-server

我有一个T-SQL语句试图使用静态总和获得百分比。

这是一个例子

select a.col1, a.col2, a.col1/b.col2Sum FROM (
    Select SUM(col2) FROM (
         Select col1, col2 FROM SomeTable
    ) As a
) as b

这不会执行并告诉我a是无效对象。我怎样才能到达那个嵌套表,或者2使用静态求和代替表b?

虽然在此示例中col1和2是简单语句,但假设它们是半复数聚合而不是简单的选择列。

编辑示例以匹配答案:

select col1,col2,col3,col4,col5, col4/(SELECT SUM(col4) FROM U) as uPercent FROM(
select col1,col2,col3,col4,col5 FROM SomeTable) as U

我得到无效的对象名称U

另外,为了清楚起见,在外部查询中,我不能从SomeTable中选择col1,col2等,因为这些列是聚合和复杂的逻辑。

1 个答案:

答案 0 :(得分:1)

如果您尝试计算列总数的百分比,那么您可以使用子查询来完成...这样的事情:

SELECT col1, col2,
  col1/(
    SELECT SUM(col2)
    FROM SomeTable
  )
FROM SomeTable