Foxtable(狐表)用户栏目专家坐堂 → [求助]分段统计问题


  共有1988人关注过本帖树形打印复制链接

主题:[求助]分段统计问题

帅哥哟,离线,有人找我吗?
xndd
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:517 积分:4319 威望:0 精华:0 注册:2014/11/26 15:23:00
[求助]分段统计问题  发帖心情 Post By:2017/7/24 17:08:00 [只看该作者]

我的userinfo表中有一列是年龄列,我想要统计出20岁以下、21-30、31-40、41-50、51以上等年龄段的数据
我的想法是用sql生成临时表,再用临时表去统计分析,但是写了几种sql都不行:

请问老师有没有更好的办法,谢谢!

怎么没法插入sql语句代码到论坛?

图片点击可在新窗口打开查看此主题相关图片如下:121212121212.png
图片点击可在新窗口打开查看

提示:

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20170724171221.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2017/7/24 17:13:22编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/24 17:46:00 [只看该作者]

先看懂这个句

 

Select (Case when 年龄 < 20 Then 1 Else 0 End) As 少于20, (Case when 年龄 >= 20 And 年龄 < 30 Then 1 Else 0 End) As 20到30 from {表A}

 

然后再sum即可。


 回到顶部
帅哥哟,离线,有人找我吗?
xndd
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:517 积分:4319 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2017/7/25 8:35:00 [只看该作者]

这条语句在sqlserver里都正常,但是到了foxtable里就不正常的
.NET Framework 版本:2.0.50727.8745
Foxtable 版本:2017.6.12.1
错误所在事件:
详细错误信息:
IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/25 9:01:00 [只看该作者]

1、你在foxtable里面测试的是 内部表,还是access表,还是sqlserver表? 不同的表sql语句不一样的。

 

内部表和access表,要用iif函数代替case when

 

2、贴出你完整的sql语句。


 回到顶部
帅哥哟,离线,有人找我吗?
xndd
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:517 积分:4319 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2017/7/25 9:08:00 [只看该作者]

我没法在这里发出sql语句,论坛会提示违反了论坛什么什么,好奇怪,可能是没权限
我基于你的sql,先直接放在foxtable里面,就提示上面的问题,我是内部表的。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/25 10:08:00 [只看该作者]

以下是引用xndd在2017/7/25 9:08:00的发言:
我没法在这里发出sql语句,论坛会提示违反了论坛什么什么,好奇怪,可能是没权限
我基于你的sql,先直接放在foxtable里面,就提示上面的问题,我是内部表的。

 

内部表要这样写,如

 

Select iif(年龄<20, 1, 0) As 少于20, iif(年龄>=20 And 年龄<30, 1, 0) As 20到30 from {表A}


 回到顶部
帅哥哟,离线,有人找我吗?
xndd
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:517 积分:4319 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2017/7/25 10:42:00 [只看该作者]

提示: 至少一个参数没有被指定值。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/25 11:27:00 [只看该作者]

以下是引用xndd在2017/7/25 10:42:00的发言:
提示: 至少一个参数没有被指定值。

 

那就是你的列名写错了。而且,你sql语句的列名,不能是表达式列。


 回到顶部