在 CTE 之后插入,mySql
insert into after CTE, mySql
我正在编写一个过程,使用 with 生成一个 table,然后进行插入,将此 table 的字段作为值传递,但 mysql 返回一个插入中的语法错误,有人知道它是什么吗?
WITH origem AS (
SELECT
cnpj,
MAX(nome_empresa) AS nome_empresa,
SUM(qtd_documentos) AS qtd_documentos,
codigo_uf_emitente,
MAX(nome_uf_emitente) AS nome_uf_emitente,
codigo_cidade_emitente,
MAX(nome_cidade_emitente) AS nome_cidade_emitente,
codigo_uf_destinatario,
MAX(nome_uf_destinatario) AS nome_uf_destinatario,
codigo_cidade_destinatario,
MAX(nome_cidade_destinatario) AS nome_cidade_destinatario,
SUM(qtd_produtos) AS qtd_produtos,
SUM(valor_total_frete) AS valor_total_frete,
SUM(valor_total_nfe) AS valor_total_nfe,
_ano AS ano,
_mes AS mes
FROM
dataset_nfe_transportadoras_diario
WHERE
ano = _ano
AND mes = _mes
GROUP BY
cnpj,
codigo_uf_emitente,
codigo_cidade_emitente,
codigo_uf_destinatario,
codigo_cidade_destinatario
)
INSERT INTO dataset_nfe_transportadoras_mensal(
cnpj,
nome_empresa,
codigo_uf_emitente,
nome_uf_emitente,
codigo_cidade_emitente,
nome_cidade_emitente,
codigo_uf_destinatario,
nome_uf_destinatario,
codigo_cidade_destinatario,
nome_cidade_destinatario,
qtd_documentos,
qtd_produtos,
valor_total_nfe,
valor_total_frete,
mes,
ano
)
我的sqlcode就是它
您必须将 CTE 用作 SELECT
INSERT INTO dataset_nfe_transportadoras_mensal
WITH origem AS (
SELECT
cnpj,
MAX(nome_empresa) AS nome_empresa,
SUM(qtd_documentos) AS qtd_documentos,
codigo_uf_emitente,
MAX(nome_uf_emitente) AS nome_uf_emitente,
codigo_cidade_emitente,
MAX(nome_cidade_emitente) AS nome_cidade_emitente,
codigo_uf_destinatario,
MAX(nome_uf_destinatario) AS nome_uf_destinatario,
codigo_cidade_destinatario,
MAX(nome_cidade_destinatario) AS nome_cidade_destinatario,
SUM(qtd_produtos) AS qtd_produtos,
SUM(valor_total_frete) AS valor_total_frete,
SUM(valor_total_nfe) AS valor_total_nfe,
_ano AS ano,
_mes AS mes
FROM
dataset_nfe_transportadoras_diario
WHERE
ano = _ano
AND mes = _mes
GROUP BY
cnpj,
codigo_uf_emitente,
codigo_cidade_emitente,
codigo_uf_destinatario,
codigo_cidade_destinatario
)
SELECT
cnpj,
nome_empresa,
codigo_uf_emitente,
nome_uf_emitente,
codigo_cidade_emitente,
nome_cidade_emitente,
codigo_uf_destinatario,
nome_uf_destinatario,
codigo_cidade_destinatario,
nome_cidade_destinatario,
qtd_documentos,
qtd_produtos,
valor_total_nfe,
valor_total_frete,
mes,
ano
FROM origem
我正在编写一个过程,使用 with 生成一个 table,然后进行插入,将此 table 的字段作为值传递,但 mysql 返回一个插入中的语法错误,有人知道它是什么吗?
WITH origem AS (
SELECT
cnpj,
MAX(nome_empresa) AS nome_empresa,
SUM(qtd_documentos) AS qtd_documentos,
codigo_uf_emitente,
MAX(nome_uf_emitente) AS nome_uf_emitente,
codigo_cidade_emitente,
MAX(nome_cidade_emitente) AS nome_cidade_emitente,
codigo_uf_destinatario,
MAX(nome_uf_destinatario) AS nome_uf_destinatario,
codigo_cidade_destinatario,
MAX(nome_cidade_destinatario) AS nome_cidade_destinatario,
SUM(qtd_produtos) AS qtd_produtos,
SUM(valor_total_frete) AS valor_total_frete,
SUM(valor_total_nfe) AS valor_total_nfe,
_ano AS ano,
_mes AS mes
FROM
dataset_nfe_transportadoras_diario
WHERE
ano = _ano
AND mes = _mes
GROUP BY
cnpj,
codigo_uf_emitente,
codigo_cidade_emitente,
codigo_uf_destinatario,
codigo_cidade_destinatario
)
INSERT INTO dataset_nfe_transportadoras_mensal(
cnpj,
nome_empresa,
codigo_uf_emitente,
nome_uf_emitente,
codigo_cidade_emitente,
nome_cidade_emitente,
codigo_uf_destinatario,
nome_uf_destinatario,
codigo_cidade_destinatario,
nome_cidade_destinatario,
qtd_documentos,
qtd_produtos,
valor_total_nfe,
valor_total_frete,
mes,
ano
)
我的sqlcode就是它
您必须将 CTE 用作 SELECT
INSERT INTO dataset_nfe_transportadoras_mensal
WITH origem AS (
SELECT
cnpj,
MAX(nome_empresa) AS nome_empresa,
SUM(qtd_documentos) AS qtd_documentos,
codigo_uf_emitente,
MAX(nome_uf_emitente) AS nome_uf_emitente,
codigo_cidade_emitente,
MAX(nome_cidade_emitente) AS nome_cidade_emitente,
codigo_uf_destinatario,
MAX(nome_uf_destinatario) AS nome_uf_destinatario,
codigo_cidade_destinatario,
MAX(nome_cidade_destinatario) AS nome_cidade_destinatario,
SUM(qtd_produtos) AS qtd_produtos,
SUM(valor_total_frete) AS valor_total_frete,
SUM(valor_total_nfe) AS valor_total_nfe,
_ano AS ano,
_mes AS mes
FROM
dataset_nfe_transportadoras_diario
WHERE
ano = _ano
AND mes = _mes
GROUP BY
cnpj,
codigo_uf_emitente,
codigo_cidade_emitente,
codigo_uf_destinatario,
codigo_cidade_destinatario
)
SELECT
cnpj,
nome_empresa,
codigo_uf_emitente,
nome_uf_emitente,
codigo_cidade_emitente,
nome_cidade_emitente,
codigo_uf_destinatario,
nome_uf_destinatario,
codigo_cidade_destinatario,
nome_cidade_destinatario,
qtd_documentos,
qtd_produtos,
valor_total_nfe,
valor_total_frete,
mes,
ano
FROM origem