免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 15031 | 回复: 16
打印 上一主题 下一主题

在SQL中合并两张表?急急 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-14 15:49 |只看该作者 |倒序浏览
在SQL中合并两张表中的数据产生一张新的临时表。要合并的两张表中的字段不完全相同。

各位大哥快帮下手了。

论坛徽章:
0
2 [报告]
发表于 2006-06-14 17:25 |只看该作者
举个例子来看看?这样子看不懂题目的意思啊!

论坛徽章:
0
3 [报告]
发表于 2006-06-14 18:02 |只看该作者
A表如下:
el_no   lot_no   mt_area   mt_qty
123      2          555           20
123      3          555           30
124      2          666           10
B表如下:
el_no   lot_no   mt_area   qc_qty
123      2          444          20
124      3          444          10
125      4          444          50

要产生的C表如下:
el_no   lot_no   mt_area   mt_qty   qc_qty
123      2          555           20          20
123      3          555           30           0
124      2          666           10           0
124      3          444            0            10
125      4          444            0            50

论坛徽章:
0
4 [报告]
发表于 2006-06-14 18:29 |只看该作者
使用left join 就可以吧

论坛徽章:
0
5 [报告]
发表于 2006-06-15 00:38 |只看该作者
不是,应该用 union all

论坛徽章:
0
6 [报告]
发表于 2006-06-15 06:41 |只看该作者
b表的第一条样例数据不对吧?
full outer join

论坛徽章:
0
7 [报告]
发表于 2006-06-15 08:14 |只看该作者
B表的第一条数据是对的,要求就是这样的。

SELECT a.el_no,a.lot_no,a.mt_area,
FROM iemt00d1 a LEFT JOIN #test45 b
ON a.el_no = b.el_no
UNION ALL
SELECT a.el_no,a.lot_no,a.mt_area,a.ch_qty
FROM ieqc01d1 a LEFT JOIN #test45 b
ON a.el_no = b.el_no

这是我写是SQL语句,下面是出错的提


包含 UNION 运算符的 SQL 语句中的所有查询都必须在目标列表中具有相同数目的表达式。

论坛徽章:
0
8 [报告]
发表于 2006-06-15 09:43 |只看该作者
a1
el_no lot_no mt_area mt_qty
123 ,2 ,555, 20
123, 3, 555, 30
124, 2 ,666 ,10

b1
el_no lot_no mt_area qc_qty
123 ,2 ,444, 20
124 ,3 ,444 ,10
125 ,4 ,444 ,50


select el_no,lot_no,mt_area,mt_qty,qc_qty from
(
   select a.el_no,a.lot_no,a.mt_area,a.mt_qty, b.qc_qty  from a1 a
   left join b1 b on a.el_no=b.el_no and a.lot_no=b.lot_no
   union all
   select el_no,lot_no,mt_area,mt_qty=0,qc_qty from b1 b where
   not exists (
    select max(a.mt_area) mt_area from a1 a where a.el_no=b.el_no
    and a.lot_no=b.lot_no
    group by a.el_no,a.lot_no
    )
) z

order by el_no,lot_no,mt_area desc

论坛徽章:
0
9 [报告]
发表于 2006-06-15 10:04 |只看该作者
再改了一下。呵呵。。。
select el_no,lot_no,mt_area,mt_qty,qc_qty from
(
   select a.el_no,a.lot_no,a.mt_area,a.mt_qty, isnull(b.qc_qty ,0)as qc_qty from a1 a
   left join b1 b on a.el_no=b.el_no and a.lot_no=b.lot_no
   union all
   select el_no,lot_no,mt_area,mt_qty=0,qc_qty from b1 b where
   not exists (
    select a.mt_area mt_area from a1 a where a.el_no=b.el_no
    and a.lot_no=b.lot_no
   
    )
) z

order by el_no,lot_no,mt_area desc

论坛徽章:
0
10 [报告]
发表于 2006-06-16 11:29 |只看该作者
不行啊,大哥有没有联系方式啊,留个给我,QQ,MSN都好
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP