| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2776 人关注过本帖
标题:如何运用SELECT - SQL 命令
取消只看楼主 加入收藏
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
结帖率:90.91%
收藏
已结贴  问题点数:10 回复次数:13 
如何运用SELECT - SQL 命令
有表A
ZD1  ZD2
A    2
B    3
C    4

表B
ZD1  ZD2
A    12
B    13
D    14
E    15
E    20

能否用SELECT - SQL 命令,一步到位产生表C

ZD1  ZD2  ZD3

A    2    12
B    3    13
C    4   
D         14
E         35
搜索更多相关主题的帖子: 命令 SELECT SQL 
2010-03-08 12:31
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
谢谢 cnfarer,你的
select d.zd1,d.zd2,sum d.zd3) as zd3 form (select b.zd1,a.zd2,b.zd2 as zd3 from b left outer join a on a.zd1=b.zd1) d group by d.zd1 into table c

中 d 是什么?如果是指表A,那么代入后,程序运行出错。
2010-03-09 08:11
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
谢谢tlliqi。表A、表B有共用字段ZD1。因此不要增加字段 xh(序号)。程序的效果是

表3

 ZD1  ZD2  ZD3
  A    2   12
  B    3   13
  C    4   .NULL.

好像没有达到期望的效果。
2010-03-09 08:24
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
谢谢 cnfarer,D 不代入,执行程序,仍然运行出错。
2010-03-09 08:42
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
谢谢sywzs,你的
select a0.zd1,表1.zd2,a2.zd3 from (SELECT zd1 FROM 表1 UNION sele zd1 FROM 表2) a0 LEFT OUTER JOIN (select zd1,sum(zd2) as zd3 from 表2 group by zd1) a2 ON a2.zd1=a0.zd1 left outer join 表1 on 表1.zd1=a0.zd1

a0,a2,表1,表2含义不明,能否采用题目中的表A、表B。程序运行出错。
 
2010-03-09 08:48
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
谢谢sywzs,你的
SELECT A0.ZD1,表A.ZD2,A2.ZD3 FROM (SELECT ZD1 FROM 表A UNION SELECT ZD1 FROM 表B) A0 LEFT OUTER JOIN (SELECT ZD1,SUM(ZD2) ZD3 FROM 表B GROUP BY ZD1) A2 ON A2.ZD1=A0.ZD1 LEFT OUTER JOIN 表A ON 表A.ZD1=A0.ZD1

我在8.0 运行,程序出错。
2010-03-09 11:23
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
谢谢sywzs,我再试试。
2010-03-09 14:26
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
谢谢sywzs,在9.0 中,程序正常执行。效果如你的一样。我常用8.0 ,在8.0中命令应如何修改。
2010-03-09 14:34
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 

例题是很有用的。例如表A,可以是库存表,表B可以是流水账。通过程序可以产生统计汇总。我经常要做这样的事,是用一组命令实现的。也尝试过用UPDATE - SQL 命令。但是效果不好,不稳定,有时会产生不替换的现象。可能是我运用UPDATE - SQL 命令不当。

贴子发出后,许多老师、高手进行指教,在此深表感谢。不仅我受益匪浅,相信不少狐友也有所启发。

谢谢cnfarer,你的程序
SELECT d.zd1,表a.zd2,e.zd2 from (SELECT 表a.zd1 FROM 表a UNION  SELECT 表b.zd1 FROM 表b) d LEFT OUTER JOIN 表a ON d.zd1=表a.zd1 LEFT OUTER JOIN (select zd1,sum(zd2) as zd2 from 表b group by zd1) e ON d.zd1=e.zd1  INTO TABLE c
在9.0 中,运行正常。 在8.0 中不能运行。

谢谢qingfameng,你的程序在6.0、8.0 中运行出错。

我经常使用的是8.0,在8.0 中,程序该怎样写?
2010-03-10 08:23
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
谢谢hgfeng1984,你的

SELECT A.ZD1 ,SUM(A.ZD2) AS ZD2,SUM(A.ZD3) AS ZD3 FROM (SELECT ZD1,ZD2,0 AS ZD3 FROM 表A UNION ALL SELECT ZD1,0 AS ZD2, ZD2 AS ZD3 FROM 表B) A GROUP BY A.ZD1

在9.0 运行成功,并且没有.NULL.  。.NULL.有时很麻烦。

为什么在8.0不能运行。难道8.0没有相应的命令程序?请老师们指教,谢谢。
2010-03-10 12:03
快速回复:如何运用SELECT - SQL 命令
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018012 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved