有没有办法将 SELECT, FROM, GROUPBY 语句的结果变成新的 table?
Is there a way to turn the results of a SELECT, FROM, GROUPBY statement into a new table?
基本上我需要将SQL中的一些table放入Excel中,然后用third-party程序对其进行分析。但是,当使用 Excel 时,数据透视表日期列采用特定格式 (d mm),对于 third-party 程序,它不会接受它。
然而,在 SQL 中,我对原始数据进行了一些聚合,我用于聚合语句的格式是绝对正确的,我想将这些结果转换为单独的 table 这样我就可以将它提供给外部程序。我将在下面举例说明我的意思。
这是对数据的 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]
基本上,我想将代码语句上方的视图转换为具有这些值的 table,并将 headers 转换为可以与之交互的单独 table。
SELECT INTO
就是你想在这里使用的。假设您有创建新 table 的权限,步骤为:
- 创建要在其中插入数据的table
- 将
SELECT
查询转换为 SELECT INTO
查询。
这是一个来自 W3 Schools 的 example,我针对您的用例进行了修改,应该可以使用。最主要的是 new_table 应该已经创建,然后通过添加 INTO
:
修改您的 select 查询
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]
基本上我需要将SQL中的一些table放入Excel中,然后用third-party程序对其进行分析。但是,当使用 Excel 时,数据透视表日期列采用特定格式 (d mm),对于 third-party 程序,它不会接受它。
然而,在 SQL 中,我对原始数据进行了一些聚合,我用于聚合语句的格式是绝对正确的,我想将这些结果转换为单独的 table 这样我就可以将它提供给外部程序。我将在下面举例说明我的意思。
这是对数据的 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]
基本上,我想将代码语句上方的视图转换为具有这些值的 table,并将 headers 转换为可以与之交互的单独 table。
SELECT INTO
就是你想在这里使用的。假设您有创建新 table 的权限,步骤为:
- 创建要在其中插入数据的table
- 将
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]