专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Sql Server

这三个语句如何写成一个语句,中间不用create table

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
这三个语句怎么写成一个语句,中间不用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。
------解决思路----------------------
用嵌套临时表,用完就自动删了,不占用物理内存。

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)

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: