如何将此Excel图形数据转换为SQL查询?

时间:2015-01-23 16:58:55

标签: sql sql-server excel tsql

我在Excel中有一个3轴圆柱图,它是从源自SQL DB表的数据透视表生成的。目前,Excel只是将所有数据从SQL表中提取到数据透视表中,以生成图表后面的数据源。我想使用T-SQL查询来仅提取在Excel之外生成类似图形所需的数据(准确地说是Javascript)。图表看起来像这样:

Cylinder graph

SQL表的列结构如下(糟糕的架构,我知道):

  • 的EntryID
  • 操作
  • Date_Year
  • Date_Month
  • Date_Day
  • 各种其他项目(与生成图表无关)

到目前为止,我已经能够使用代码来提取在Excel之外填充源所需的数据,尽管这会生成122个单独的查询 - 显然是不可接受的。我在代码中执行此操作的方式是选择所有不同的Date_Years,Date_Months和Date_Operators,如下所示:

  • SELECT DISTINCT Date_Year from dbo.Items
  • SELECT DISTINCT Date_Month from dbo.Items
  • SELECT DISTINCT Operator from dbo.Items

然后迭代几年,几个月和运营商。我正在寻找一种方法来尽可能少地查询所有这些数据,而不是迭代并反复点击数据库服务器。

非常感谢任何帮助 - 如果有必要进一步澄清,请告诉我。谢谢!

1 个答案:

答案 0 :(得分:1)

基本上,Excel会以某种方式对值进行分组,因此在图表中,它似乎按年,月和运算符进行分组,并使用值的聚合。基本上它正在做类似的事情:

SELECT      Date_Year,
            Date_Month,
            Operator,
            COUNT(*) AS Value

FROM        dbo.Items

GROUP BY    Date_Year,
            Date_Month,
            Operator

当然,你可以调整它以适应WHERE子句或更改聚合函数,但你可能想从那开始......