Office中国论坛/Access中国论坛

标题: 如何用SQL语句筛选小于100%的数据? [打印本页]

作者: liuqi67    时间: 2016-9-9 12:50
标题: 如何用SQL语句筛选小于100%的数据?
如下数据,如何用SQL语句筛选已完成率小于100%的数据?即已全部完成的不显示,这个判断百分比的SQL语句如何写?望高手指教,感谢!

[attach]59896[/attach]

作者: roych    时间: 2016-9-9 13:21
  1. select * from 查询1
  2. where 完成率<1
复制代码

需要注意,这里的完成率必须是数值型字段。如果是文本型的话,应该先转换为数值型。

作者: liuqi67    时间: 2016-9-9 13:46
感谢roych 管理员的回复,确实需要转换,试着处理始终都提示数据类型不符,上传附件,望帮忙处理一下,感谢!

[attach]59897[/attach]


作者: ly    时间: 2016-9-9 22:33
liuqi67 发表于 2016-9-9 13:46
感谢roych 管理员的回复,确实需要转换,试着处理始终都提示数据类型不符,上传附件,望帮忙处理一下,感谢 ...

实例显示为文本型,[最终查询]的sql
  1. SELECT 物料登记表_交叉表.产品名称, 物料登记表_交叉表.总数, 物料登记表_交叉表.已提供, 物料登记表_交叉表.未提供, Nz(Round([已提供]/[总数]*100,2),0) & "%" AS 已完成率, Nz(Round([未提供]/[总数]*100,2),0) & "%" AS 未完成率
  2. FROM 物料登记表_交叉表
  3. WHERE ((Not (Nz(Round([已提供]/[总数]*100,2),0) & "%")="100%"))
复制代码

作者: liuqi67    时间: 2016-9-10 19:39
ly 发表于 2016-9-9 22:33
实例显示为文本型,[最终查询]的sql

感谢您的回复!后来我也想到了这个办法解决了,直接筛选出不等于“100%“的就行了,这是一种简便的解决途径,我也想知道如果要执行>50%<100%的数据,这个就必须要转换成数字进行比较运算了,所以我想知道如何处理?想向您请教一下。
作者: ly    时间: 2016-9-11 08:53
liuqi67 发表于 2016-9-10 19:39
感谢您的回复!后来我也想到了这个办法解决了,直接筛选出不等于“100%“的就行了,这是一种简便的解决途 ...

建议以后早点上传实例

1\既然是数值,百分比的条件格式应该写成:  >0.5 and <1
2\已完成率: Nz([已提供])/[总数],格式设置为"百分比",同理未完成率也仿照.




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3