有没有办法将SELECT,FROM,GROUPBY语句的结果转换为新表?

时间:2019-06-26 21:23:31

标签: sql ssms aggregate

基本上,我需要将SQL中的某些表放入Excel中,以便使用第三方程序对其进行分析。但是,使用Excel时,数据透视表日期列采用特定格式(d mm),并且对于第三方程序,它将不接受它。

但是,在对原始数据进行了一些聚合的SQL中,用于聚合语句的格式是绝对正确的,我希望将这些结果转换为单独的表,以便将其提供给外部程序。我将在下面举例说明我的意思。

这是数据上SQL聚合语句的外观的结果视图。

    Time             TADCount            TenantId
2019-11-22 00:00:00.000 1   4754F795-2FB9-4647-B28F-2CF2412F0BA2
2019-11-29 00:00:00.000 1   4754F795-2FB9-4647-B28F-2CF2412F0BA2
2019-11-30 00:00:00.000 1   4754F795-2FB9-4647-B28F-2CF2412F0BA2
2019-12-07 00:00:00.000 11  4754F795-2FB9-4647-B28F-2CF2412F0BA2
2019-12-08 00:00:00.000 2   4754F795-2FB9-4647-B28F-2CF2412F0BA2
2019-11-23 00:00:00.000 1   FD85A7E0-BDF5-4A6E-9B69-34AF1A518CB0
2019-11-27 00:00:00.000 1   FD85A7E0-BDF5-4A6E-9B69-34AF1A518CB0
2019-11-28 00:00:00.000 1   FD85A7E0-BDF5-4A6E-9B69-34AF1A518CB0
2019-12-02 00:00:00.000 1   FD85A7E0-BDF5-4A6E-9B69-34AF1A518CB0
2019-12-04 00:00:00.000 1   FD85A7E0-BDF5-4A6E-9B69-34AF1A518CB0
2019-12-06 00:00:00.000 3   FD85A7E0-BDF5-4A6E-9B69-34AF1A518CB0
2019-11-24 00:00:00.000 1   1CB49648-420B-454A-B39D-4DAB361C18B8
2019-11-24 00:00:00.000 5   0E84F35A-D7C1-4BDE-B805-6C7691B9667F
2019-11-26 00:00:00.000 1   0E84F35A-D7C1-4BDE-B805-6C7691B9667F
2019-12-05 00:00:00.000 1   0E84F35A-D7C1-4BDE-B805-6C7691B9667F
2019-12-07 00:00:00.000 2   0E84F35A-D7C1-4BDE-B805-6C7691B9667F

作为参考,这是我所做的聚合语句。

SELECT DATEADD(DAY, DATEDIFF(DAY, 0, [Time]), 0) AS Time
  , Count([TenantId]) AS TADCount,
  [TenantId]
FROM [dbo].[acms_data] 
GROUP by DATEADD(DAY, DATEDIFF(DAY, 0, [Time]), 0),[TenantId]

基本上,我想将代码语句上方的视图转换成一个表,将这些值和标头恰好变成一个可以与之交互的单独表。

1 个答案:

答案 0 :(得分:0)

SELECT INTO是您要在这里使用的。假设您具有创建新表的权限,则步骤为:

  1. 创建要在其中插入数据的表
  2. SELECT查询转换为SELECT INTO查询。

这是我针对您的用例进行了修改的W3 Schools的example。最主要的是应该已经创建了new_table,然后通过添加INTO来修改您的选择查询:

SELECT DATEADD(DAY, DATEDIFF(DAY, 0, [Time]), 0) AS Time
  , Count([TenantId]) AS TADCount,
  [TenantId]
INTO [dbo].[new_table]
FROM [dbo].[acms_data] 
GROUP by DATEADD(DAY, DATEDIFF(DAY, 0, [Time]), 0),[TenantId]