| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1050 人关注过本帖
标题:关于如何使用 SELE 语句,请教各位高手,谢谢
只看楼主 加入收藏
relaxed
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-12-13
结帖率:0
收藏
已结贴  问题点数:20 回复次数:11 
关于如何使用 SELE 语句,请教各位高手,谢谢
有一个数据库AA如下:
字段1    字段2    字段3
a    c    11
a    d    12
a    e    13
a    f    14
b    c    15
b    d    16
b    e    17
b    f    18


如何使用SELE语句使它变为如下形式:
字段1    c    d    e    f
a    11    12    13    14
b    15    16    17    18
搜索更多相关主题的帖子: 数据库 如何 
2014-06-12 17:36
lbwg
Rank: 2
等 级:论坛游民
帖 子:76
专家分:53
注 册:2011-8-21
收藏
得分:4 
SELECT 字段1, max(IIF( 字段2='c',字段3,00)) as c,Max(IIF( 字段2='d',字段3,00)) as d,Max(IIF( 字段2='e',字段3,00)) as e,Max(IIF(字段2='f',字段3,00)) as f FROM 库 group BY 字段1
2014-06-12 17:47
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9821
专家分:27099
注 册:2012-2-5
收藏
得分:4 
不用Select 语句能写出代码吗

坚守VFP最后的阵地
2014-06-12 17:48
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9821
专家分:27099
注 册:2012-2-5
收藏
得分:0 
以下是引用lbwg在2014-6-12 17:47:15的发言:

SELECT 字段1, max(IIF( 字段2='c',字段3,00)) as c,Max(IIF( 字段2='d',字段3,00)) as d,Max(IIF( 字段2='e',字段3,00)) as e,Max(IIF(字段2='f',字段3,00)) as f FROM 库 group BY 字段1

如果字段2有N个项目,你这个代码要写多长。

坚守VFP最后的阵地
2014-06-12 17:50
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:4 
程序代码:
SELECT DISTINCT 字段2 FROM b1 INTO CURSOR b2
a=""
scan
a=a+',SUM(IIF(ALLTRIM(字段2)="'+ALLTRIM(字段2)+'",字段3,0)) as '+ALLTRIM(字段2)+''
ends
a='select 字段1 '+a+' from b1 group by 字段1'
&a 
2014-06-12 18:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
扫一趟表(SCAN/ENDSCAN)的时间,都已经把最终结果生成了,扫完再来查询一次,呵呵。

授人以渔,不授人以鱼。
2014-06-12 23:05
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:4 
这个题目仅用SELECT语句是不行的,或者说达不到通用性的目的,还是要写程序段的。大致思路可以这样:先用SELECT语句分别统计出A表中字段1、2有多少种名称,然后分别把它们按你需要的格式安置,最后再填充数据。其中,字段2中的值将来要作为新表的字段名,你还得关注一下这些值是否全部满足做字段名的要求。有不满足的,你还要在程序代码中作相应的处理。你看看,哪能光用SELECT语句就能完成的?

[ 本帖最后由 taifu945 于 2014-6-13 08:44 编辑 ]
2014-06-13 08:40
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9821
专家分:27099
注 册:2012-2-5
收藏
得分:0 
如果字段2中不重复的值超过255个,是否能生成另外的表。

坚守VFP最后的阵地
2014-06-13 09:37
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用sdta在2014-6-13 09:37:47的发言:

如果字段2中不重复的值超过255个,是否能生成另外的表。

这种转置加统计的需求,通常是查询和打印时用的,设计永久报表不会超过256个字段的限制,也就是说,当表结构超过256个字段的时候,通常应考虑设计成竖向的,使用时再临时转置,这才是计算机擅长做繁琐动作的优势;另一种解决方案,是把超过256个字段的表分割成每个表字段少于256的单表,使用时再拼接。

授人以渔,不授人以鱼。
2014-06-13 10:32
lbwg
Rank: 2
等 级:论坛游民
帖 子:76
专家分:53
注 册:2011-8-21
收藏
得分:0 
学习了
2014-06-13 11:09
快速回复:关于如何使用 SELE 语句,请教各位高手,谢谢
数据加载中...
 
   



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

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