这三个语句如何写成一个语句,中间不用create table
这三个语句怎么写成一个语句,中间不用create table
CREATE TABLE a
SELECT
yhbh,
pk_corp
FROM
cr_demandplan
WHERE RecAS3 = '通过'
GROUP BY CONCAT(yhbh, pk_corp) ;
CREATE TABLE b
SELECT
ywy,
yhrq,
yhbh,
pk_cory,
sl,
spdm,
spmc,
scgg,
bzgg
FROM
cr_demandplan
WHERE RecDR = 0
CREATE TABLE b
SELECT
ywy,
yhrq,
b.pk_corp,
sl,
spdm,
spmc,
scgg,
bzgg
FROM
b
INNER JOIN a
ON CONCAT(b.yhbh, b.pk_corp) = CONCAT(a.yhbh, ba.pk_corp)
------解决思路----------------------
这个没办法弄。
你是不是想用CTE?
那就试试with。
------解决思路----------------------
用嵌套临时表,用完就自动删了,不占用物理内存。
------解决思路----------------------
CREATE TABLE a
SELECT
yhbh,
pk_corp
FROM
cr_demandplan
WHERE RecAS3 = '通过'
GROUP BY CONCAT(yhbh, pk_corp) ;
CREATE TABLE b
SELECT
ywy,
yhrq,
yhbh,
pk_cory,
sl,
spdm,
spmc,
scgg,
bzgg
FROM
cr_demandplan
WHERE RecDR = 0
CREATE TABLE b
SELECT
ywy,
yhrq,
b.pk_corp,
sl,
spdm,
spmc,
scgg,
bzgg
FROM
b
INNER JOIN a
ON CONCAT(b.yhbh, b.pk_corp) = CONCAT(a.yhbh, ba.pk_corp)
------解决思路----------------------
这个没办法弄。
你是不是想用CTE?
那就试试with。
------解决思路----------------------
用嵌套临时表,用完就自动删了,不占用物理内存。
SELECT
ywy,
yhrq,
b.pk_corp,
sl,
spdm,
spmc,
scgg,
bzgg
FROM
(
SELECT
yhbh,
pk_corp
FROM
cr_demandplan
WHERE RecAS3 = '通过'
GROUP BY CONCAT(yhbh, pk_corp)
) AS A
INNER JOIN
(
SELECT
ywy,
yhrq,
yhbh,
pk_cory,
sl,
spdm,
spmc,
scgg,
bzgg
FROM
cr_demandplan
WHERE RecDR = 0
) AS B
ON CONCAT(b.yhbh, b.pk_corp) = CONCAT(a.yhbh, a.pk_corp)
------解决思路----------------------
;WITH a AS(
SELECT
yhbh,
pk_corp
FROM
cr_demandplan
WHERE RecAS3 = '通过'
GROUP BY CONCAT(yhbh, pk_corp)
),
b AS (
SELECT
ywy,
yhrq,
yhbh,
pk_cory,
sl,
spdm,
spmc,
scgg,
bzgg
FROM
cr_demandplan
WHERE RecDR = 0
)
SELECT
ywy,
yhrq,
b.pk_corp,
sl,
spdm,
spmc,
scgg,
bzgg
FROM
b
INNER JOIN a ON CONCAT(b.yhbh, b.pk_corp) = CONCAT(a.yhbh, ba.pk_corp)