我是SQL的新手,我正在尝试从查询中创建一个表。但是,当我尝试执行查询时,我遇到了一些错误。
我正在尝试创建一个名为"CUM_PRD"
的表,其中包含以下列:
Gov_fld_nm,
Gov_pol_nm,
Oil_pd,
Gas_pd,
Water_pd.
应使用此查询填充的值来自下面的查询。
SELECT GOV_FLD_NM,
SUM (OIL_PD),
SUM (GAS_PD),
SUM (WAT_PD)
FROM PRE_PRD
GROUP BY GOV_FLD_NM
这个查询本身就可以正常工作,但是当我尝试将它包含在create table查询中时,它不起作用。我相信我没有使用正确的语法。
有人可以帮忙吗?
这是我试图使用的。
CREATE TABLE CUM_PRD
(
GOV_FLD_NM NVARCHAR (50),
OIL_PD INT,
GAS_PD INT,
WAT_PD INT
)
INSERT INTO CUM_PRD
SELECT (
GOV_FLD_NM,
SUM (OIL_PD),
SUM (GAS_PD),
SUM (WAT_PD)
)
FROM PRE_PRD
GROUP BY GOV_FLD_NM
答案 0 :(得分:2)
如果要创建临时表,可以使用SELECT ... INTO...
:
SELECT GOV_FLD_NM, SUM (OIL_PD), SUM (GAS_PD), SUM (WAT_PD)
INTO #CUM_PRD
FROM PRE_PRD
GROUP BY GOV_FLD_NM
由于您的脚本没有创建临时表,为什么不先创建表,然后插入其中:
CREATE TABLE CUM_PRD
(
GOV_FLD_NM NVARCHAR (50),
OIL_PD INT,
GAS_PD INT,
WAT_PD INT
);
然后插入数据:
INSERT INTO CUM_PRD (GOV_FLD_NM, OIL_PD, GAS_PD, WAT_PD)
SELECT GOV_FLD_NM, SUM (OIL_PD), SUM (GAS_PD), SUM (WAT_PD)
FROM PRE_PRD
GROUP BY GOV_FLD_NM
答案 1 :(得分:0)
我会做的
SELECT GOV_FLD_NM, SUM (OIL_PD), SUM (GAS_PD), SUM (WAT_PD)
INTO CUM_PRD
FROM PRE_PRD
GROUP BY GOV_FLD_NM;
SELECT INTO为您创建一个表
答案 2 :(得分:0)
您应该使用CREATE TABLE table_name AS语法
CREATE TABLE CUM_PRD
AS
(
SELECT GOV_FLD_NM, SUM (OIL_PD) OIL_PD_SUM, SUM (GAS_PD) GAS_PD_SUM, SUM (WAT_PD) WAT_PD_SUM
FROM PRE_PRD
GROUP BY GOV_FLD_NM)