1

我对 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 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
4

3 回答 3

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
于 2013-01-04T17:24:57.193 回答
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 为您创建一个表

于 2013-01-04T17:25:03.390 回答
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)
于 2013-01-04T17:25:39.697 回答