Foxtable(狐表)用户栏目专家坐堂 → 请教:这个筛选表达式怎么写?


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

主题:请教:这个筛选表达式怎么写?

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
请教:这个筛选表达式怎么写?  发帖心情 Post By:2009/4/21 7:39:00 [显示全部帖子]

假设员工表上有姓名、职务、年龄(类型为integer)等列,我想在DataList中显示该表,要求的条件是:
(1)相同的职务只显示一个(且必须显示一个)
(2)对于相同的职务显示年龄最大的一个。

不知这个筛选条件怎么写?


例如员工表上有:
张三,经理,48   
李四,员工,26    
李东,经理,30     
吴海,员工,42
刘义   副总,58

则要求筛选后的DataList显示:
张三,经理,48
吴海,员工,42
刘义,副总,58



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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/21 8:42:00 [显示全部帖子]

以下是引用狐狸爸爸在2009-4-21 7:51:00的发言:
这个我也不会,要是我只能加标志列编码
不知能能不能用SQL语句从后台提取。

这可是很常见的查询啊!

加标志列?我不太清楚当数据据量大的时候会不会影响速度,例如有几万条数据的时候?

请贺老师或者其他哪位老师提供一个相对完善一些的变通办法,若加标志列如何编码比较好,对速度影响比较小?

[此贴子已经被作者于2009-4-21 8:49:43编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/21 10:15:00 [显示全部帖子]

以下是引用reachtone在2009-4-21 9:30:00的发言:
用SQL语句可以直接得到:

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

谢谢。
这个是不是叫自连接查询?是不是只有在外部数据源才能使用,我在内部表中查询结果为空(但也不会提示出错)。


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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/21 10:28:00 [显示全部帖子]

以下是引用reachtone在2009-4-21 10:22:00的发言:
这是外连接,只不过是把查询作为表而已。
它在内部表中应该也是可以通过的。这是标准的SQL语句,在用到内部表时,可能需要遵守狐表内部表的相关规则。

再次谢谢!


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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/21 12:23:00 [显示全部帖子]

   哇塞!太神奇了!
   SQL语言只有一个Select语句,原来功能这么强大!没想到其他语言不好解决的查询,用SQL竟然都可以轻松实现!

   从这个小事例也可以看出,狐表的查询语句(Find,FindRow等)功能仍然偏弱,建议贺老师再认真改进一下,进一步增强狐表的查询语句功能!
[此贴子已经被作者于2009-4-21 12:24:20编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/21 12:26:00 [显示全部帖子]

以下是引用don在2009-4-21 12:22:00的发言:
16楼还是重复:


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

就是啊,这个问题该怎样解决呢?是不是应该把Distinct 放在中间的Select后就可以了?

[此贴子已经被作者于2009-4-21 12:26:54编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/21 12:35:00 [显示全部帖子]

以下是引用reachtone在2009-4-21 12:25:00的发言:

这个语句:SELECT B.姓名,A.职务,A.年龄 from (select 职务,max(年龄) as 年龄 from {表1} group by 职务) A LEFT JOIN (SELECT * FROM {表1}) B on A.职务=B.职务 and A.年龄=B.年龄
实际上已经排除重复了,无需再加Distinct。因为是左连接,而左边的查询又是进行过分组的,如有相同职务相同年龄的,肯定只得到一条记录。

我试了一下,的确可以自动排除重复!好极了!

建议贺老师想想办法,看狐表的DataTables的筛选功能能否改进一下,也可实现这样的功能?

[此贴子已经被作者于2009-4-21 12:35:08编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/21 12:47:00 [显示全部帖子]

以下是引用reachtone在2009-4-21 12:39:00的发言:
其实,狐表所有的统计、关联查询功能用SQL语句都可实现,而且效率更高。
做数据库系统,手上有本SQL工具书是必须的。好好学习一下SQL吧   图片点击可在新窗口打开查看

但在狐表中大量应用SQL 查询有一个问题,会影响着在狐表中SQL的大量采用,那就是:
(1)用SQL语句对表进行的所有编辑动作,直接保存文件,但在狐表中并不能立即可见,需要重新加载表才可以看见.但在狐表中用狐表命令对表的修改恰恰相反,可以直接见到,但并不直接保存文件.
(2)同样道理,在狐表中用SQL查询到的数据,是文件中保存的数据,与在狐表中看到的并不一定一致.在运行SQL查询后如果在狐表中又修改了表,需要先保存表,然后再运行一次SQL查询,可能会浪费时间.而狐表中的DataList如果直接用狐表的筛选,会随着表的变化同步变化,不需要保存及同步数据.

大家建议一下,这个问题如何解决比较好?

[此贴子已经被作者于2009-4-21 12:50:21编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
狐表与ACCESS比较  发帖心情 Post By:2009/4/22 9:05:00 [显示全部帖子]

以下是引用reachtone在2009-4-21 12:25:00的发言:

这个语句:SELECT B.姓名,A.职务,A.年龄 from (select 职务,max(年龄) as 年龄 from {表1} group by 职务) A LEFT JOIN (SELECT * FROM {表1}) B on A.职务=B.职务 and A.年龄=B.年龄
实际上已经排除重复了,无需再加Distinct。因为是左连接,而左边的查询又是进行过分组的,如有相同职务相同年龄的,肯定只得到一条记录。

我的这个查询语句有什么不同?为什么不能排除重复呢?
补充:查询结果中除姓名和月份字段外,其他字段可能不同。我指的排除重复是指排除所有姓名和月份相同的重复(忽略其他字段相同)。这个查询该怎样改?


图片点击可在新窗口打开查看此主题相关图片如下:连接查询.bmp
图片点击可在新窗口打开查看
[此贴子已经被作者于2009-4-22 9:24:45编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/23 15:48:00 [显示全部帖子]

谢谢几位!


 回到顶部
总数 12 1 2 下一页