| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1217 人关注过本帖, 1 人收藏
标题:select查询问题
只看楼主 加入收藏
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
结帖率:66.67%
收藏(1)
已结贴  问题点数:20 回复次数:10 
select查询问题
我有两张表,
表A联系人   
柳银霞
郑文秀
徐冬瑾
李胜韬
张林杰
刘焕丽
孙静媛
吴春海
刘学佳
门彦先
甄志爽
门月红
表B
联系人    地区
门彦先    天津
吴春海    北京
吴春海    天津
张林杰    秦皇岛
郑文秀    唐山
郑文秀    秦皇岛
郑文秀    天津
SELECT lxr as 联系人,dq as 地区数 from stu into table lxr_s
SELECT 联系人, count(*) as 地区数,from lxr_s group by  联系人 order by 联系人 into table s_lxr_s
现在我能统计的是表B中包含的联系人他们所负责的地区数,表A中有的表B中没有的怎么表示?
搜索更多相关主题的帖子: 联系人 count 
2012-08-13 11:17
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:5 
以下是引用lifeng123在2012-8-13 11:17:00的发言:

我有两张表,
表A联系人   
柳银霞
郑文秀
徐冬瑾
李胜韬
张林杰
刘焕丽
孙静媛
吴春海
刘学佳
门彦先
甄志爽
门月红
表B
联系人    地区
门彦先    天津
吴春海    北京
吴春海    天津
张林杰    秦皇岛
郑文秀    唐山
郑文秀    秦皇岛
郑文秀    天津
SELECT lxr as 联系人,dq as 地区数 from stu into table lxr_s
SELECT 联系人, count(*) as 地区数,from lxr_s group by  联系人 order by 联系人 into table s_lxr_s
现在我能统计的是表B中包含的联系人他们所负责的地区数,表A中有的表B中没有的怎么表示?
楼主想让表B如何表示

坚守VFP最后的阵地
2012-08-13 12:01
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
收藏
得分:0 
我想生成一个临时表,表中显示联系人 郑文秀 负责地区 三个,联系人 门月红  负责地区  0个,就是说统计表A和表B中出现的联系人负责地区的个数,没有的写0

2012-08-13 13:51
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
不用SELECT语句,你会不会?

授人以渔,不授人以鱼。
2012-08-13 14:03
ilikeflash
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:148
专家分:186
注 册:2011-4-6
收藏
得分:5 
打开‘帮助’,学习下nvl()函数用法,可能对你有用。
2012-08-13 15:45
跳过去
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:282
专家分:976
注 册:2012-8-13
收藏
得分:5 
你的A表和B表 要有相关联的字段才能查 啊

要是有关联字段的话你试下这语句:

select  a表.字段 1, a表.字段 2...,
        b表.字段1,b表.字段2....
from a表
   join  b表
   on  a表.关联字段=b表.关联字段
   join  C表
   on  a表.关联字段=C表.关联字段



光棍中.....
2012-08-13 17:56
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
回复 楼主 lifeng123
程序代码:
*--- VFP9.0 CODE
CREATE CURSOR 表A (联系人 C(6))
XM="柳银霞郑文秀徐冬瑾李胜韬张林杰刘焕丽孙静媛吴春海刘学佳门彦先甄志爽门月红"
FOR I=1 TO LENC(XM)/3
    INSERT INTO 表A VALUES (SUBSTRC(XM,(I-1)*6+1,3))
ENDFOR
CREATE CURSOR 表B (联系人 C(6),地区 C(40))
XMDQ="门彦先,天津;吴春海,北京;吴春海,天津;张林杰,秦皇岛;郑文秀,唐山;郑文秀,秦皇岛;郑文秀,天津"
FOR I=1 TO GETWORDCOUNT(XMDQ,";")
    XMDQ1=GETWORDNUM(XMDQ,I,";")
    INSERT INTO 表B VALUES (GETWORDNUM(XMDQ1,1,","),GETWORDNUM(XMDQ1,2,","))
ENDFOR
SYS(3099,70)
SELECT A.联系人,NVL(B.地区,"") AS 地区,COUNT(地区) AS 地区数 FROM 表A A FULL JOIN 表B B ON A.联系人==B.联系人 GROUP BY 1 INTO CURSOR TEMP1
SELECT 联系人,CAST(FUN(联系人) AS C(20)) AS 地区 FROM 表B GROUP BY 1 INTO CURSOR TEMP2
SELECT A.联系人,NVL(B.地区,"") AS 地区,A.地区数 FROM TEMP1 A FULL JOIN TEMP2 B ON A.联系人==B.联系人 GROUP BY 1 INTO CURSOR TEMP READWRITE
BLANK ALL FIELDS 地区数 FOR 地区数=0
BROWSE
*--------- 自定义函数 ---------*
FUNCTION FUN
PARAMETER CNAME
CSTR=""
SELECT 表B
SCAN FOR ALLTRIM(联系人)==ALLTRIM(CNAME)
   CSTR=CSTR+ALLTRIM(地区)+"-"
ENDSCAN
RETURN LEFT(CSTR,LEN(CSTR)-1)
ENDFUNC
效果图
图片附件: 游客没有浏览图片的权限,请 登录注册

坚守VFP最后的阵地
2012-08-13 17:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 7楼 sdta
..

授人以渔,不授人以鱼。
2012-08-13 18:19
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
收藏
得分:0 
六楼的朋友,我用过你说的方法,两个表共同有的能显示,那两个表不相同的怎么表示呀?

2012-08-16 20:29
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:0 
这么好的示例,楼主没看到?
2012-08-20 21:07
快速回复:select查询问题
数据加载中...
 
   



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

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