| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 121 人关注过本帖
标题:如何解决宽度不够显示*号
只看楼主 加入收藏
chychychy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:372
专家分:128
注 册:2015-4-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
如何解决宽度不够显示*号
考生选考情况.rar (547 Bytes)

*直接用SELECT...INTO CURSOR 自动创建临时表时,根据第一条记录的数值长度分配字段宽度。如果后续记录的数值位数超过该宽度,就会显示 *。
一、改为先建立空表,后插入数据,为何还是*号
二、如何用简洁方式在查询表尾部加一统计行,只合计数值列的值
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
* 先创建空表结构
CREATE CURSOR 考生选考情况统计 ;
    (外语语种 C(20),    代码 C(10),    选考科目组 C(20),    考生数 N(10),;
    物理 N(8),; && 直接定义15位宽度
    化学 N(8),;
    生物 N(8),;
    政治 N(8),;
    历史 N(8),;
    地理 N(8))
BROWSE
* 插入数据
INSERT INTO 考生选考情况统计 ;
    SELECT 外语语种, 代码, 选考科目组, 考生数,;
    IIF('04' $ 代码, 考生数, 0),;
    IIF('05' $ 代码, 考生数, 0),;
    IIF('06' $ 代码, 考生数, 0),;
    IIF('07' $ 代码, 考生数, 0),;
    IIF('08' $ 代码, 考生数, 0),;
    IIF('09' $ 代码, 考生数, 0);
    FROM 考生选考情况
* 在数据表最后插入一条记录

BROWSE



[此贴子已经被作者于2025-4-22 09:31编辑过]

3 天前 09:29
fyyylyl
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:317
专家分:838
注 册:2006-5-22
收藏
得分:10 
INSERT INTO 考生选考情况统计 ;
    SELECT 外语语种, 代码, 选考科目组, 考生数,;
    IIF('04' $ 代码, 考生数, 0000000000),;
    IIF('05' $ 代码, 考生数, 0000000000),;
    IIF('06' $ 代码, 考生数, 0000000000),;
    IIF('07' $ 代码, 考生数, 0000000000),;
    IIF('08' $ 代码, 考生数, 0000000000),;
    IIF('09' $ 代码, 考生数, 0000000000);
    FROM 考生选考情况

3 天前 16:08
chychychy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:372
专家分:128
注 册:2015-4-18
收藏
得分:0 
回复 2楼 fyyylyl
感谢,这样可以。
但是继续求教,我用10个0,结果如图1,前面10后面的8;我用5个0,如图2,前面5后面8,为什么会这样?什么原因啊
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
SELECT 外语语种, 代码, 选考科目组, 考生数,;
    IIF('04' $ 代码, 考生数, 00000) AS 物理,;
    IIF('05' $ 代码, 考生数, 00000) AS 化学,;
    IIF('06' $ 代码, 考生数, 00000) AS 生物,;
    IIF('07' $ 代码, 考生数, 00000) AS 政治,;
    IIF('08' $ 代码, 考生数, 00000) AS 历史,;
    IIF('09' $ 代码, 考生数, 00000) AS 地理;
    FROM 考生选考情况



[此贴子已经被作者于2025-4-23 16:02编辑过]

3 天前 17:39
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1981
专家分:3919
注 册:2012-2-29
收藏
得分:10 
可以试一试(VFP9):
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
select 外语语种,代码,选考科目组,考生数,;
    cast(iif('04' $ 代码, 考生数, 0) as n(10,0)) as 物理,;
    cast(iif('05' $ 代码, 考生数, 0) as n(10,0)) as 化学,;
    cast(iif('06' $ 代码, 考生数, 0) as n(10,0)) as 生物,;
    cast(iif('07' $ 代码, 考生数, 0) as n(10,0)) as 政治,;
    cast(iif('08' $ 代码, 考生数, 0) as n(10,0)) as 历史,;
    cast(iif('09' $ 代码, 考生数, 0) as n(10,0)) as 地理 ;
    from 考生选考情况
前天 07:47
chychychy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:372
专家分:128
注 册:2015-4-18
收藏
得分:0 
回复 4楼 schtg
谢谢,运行可以,又学用一个函数。
我用deepseek,在查询文件后增加一汇总行,请教有没有更简洁的方式
程序代码:
SELECT 外语语种,代码,选考科目组,考生数,;
    CAST(IIF('04' $ 代码, 考生数, 0) AS N(10,0)) AS 物理,;
    CAST(IIF('05' $ 代码, 考生数, 0) AS N(10,0)) AS 化学,;
    CAST(IIF('06' $ 代码, 考生数, 0) AS N(10,0)) AS 生物,;
    CAST(IIF('07' $ 代码, 考生数, 0) AS N(10,0)) AS 政治,;
    CAST(IIF('08' $ 代码, 考生数, 0) AS N(10,0)) AS 历史,;
    CAST(IIF('09' $ 代码, 考生数, 0) AS N(10,0)) AS 地理 ;
    INTO CURSOR 考生选考情况统计 READWRITE;
    FROM 考生选考情况
BROWSE 

* 计算各科总和
SUM 物理, 化学, 生物, 政治, 历史, 地理 ;
    TO ARRAY aTotals 

* 插入汇总行
INSERT INTO 考生选考情况统计 ;
    (外语语种, 代码, 选考科目组, 考生数, 物理, 化学, 生物, 政治, 历史, 地理) ;
    VALUES ;
    ('汇总行', ' ', '总计各科目人数',0,;
    aTotals[1], aTotals[2], aTotals[3], aTotals[4], aTotals[5], aTotals[6])
BROWSE 



[此贴子已经被作者于2025-4-23 16:01编辑过]

前天 15:31
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1981
专家分:3919
注 册:2012-2-29
收藏
得分:0 
回复 5楼 chychychy
将 插入汇总行 改为下句(不要计算各科总和),试一试哈
INSERT INTO 考生选考情况统计(外语语种,选考科目组,物理, 化学, 生物, 政治, 历史, 地理) ;
       SELECT '汇总行','总计各科目人数',SUM(物理),SUM(化学),SUM(生物),SUM(政治),SUM(历史),SUM(地理) FROM 考生选考情况统计



[此贴子已经被作者于2025-4-23 16:55编辑过]

前天 16:52
chychychy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:372
专家分:128
注 册:2015-4-18
收藏
得分:0 
回复 6楼 schtg
谢谢,完全符合我需要。简洁,学习了,原来还可以这样写入。
昨天 08:36
快速回复:如何解决宽度不够显示*号
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020890 second(s), 11 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved