设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3088|回复: 13
打印 上一主题 下一主题

[查询] [讨论]高级查询语句,高手们不妨试试!

[复制链接]
跳转到指定楼层
1#
发表于 2002-11-28 23:28:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有一个表中存有1594323条记录, 是足彩310的全部组合,结构及部分数据如下:
---------------------------------------------------------------------------
N1|N2|N3| N4|N5 |N6 |N7 |N8 |N9 |N10 |N11 |N12 |N13|Count3|Count1|Count0|
--|--|--|---|---|---|---|---|---|----|----|----|---|------|------|------|
3  | 3 | 3|  3 | 1 | 1 | 1 | 0 | 1 |  3 | 0  |  1 | 0 |      
3  | 3 | 3|  1 | 1 | 1 | 1 | 0 | 1 |  3 | 0  |  1 | 0 |
3  | 3 | 3|  0 | 1 | 1 | 1 | 0 | 1 |  3 | 0  |  1 | 0 |
3  | 3 | 3|  3 | 1 | 1 | 1 | 0 | 1 |  3 | 0  |  1 | 3 |
3  | 3 | 3|  3 | 1 | 1 | 1 | 0 | 1 |  3 | 0  |  1 | 3 |
----------------------------------------------------------------------------
段说明:N1..N13分别是13场比赛的结果
Count3是本行记录中3的个数
Count1是本行记录中1的个数
Count0是本行记录中0的个数

请问各位:
你能用一条修改语句,更新Count3,Count1,Count0的值吗?
   如:第一条记录中Count3=5,Count1=5,Count0=3
试试吧!




[此贴子已经被作者于2002-11-28 14:24:12编辑过]




[此贴子已经被作者于2002-11-28 14:32:28编辑过]




[此贴子已经被作者于2002-11-28 15:28:29编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2002-11-28 23:32:00 | 只看该作者
这个查询好象没有人能做出来?
3#
 楼主| 发表于 2002-11-28 23:51:00 | 只看该作者
大家不妨想想利用SQL Server的Select Case when then语句(我这个表是SQL SERVER数据库中的一个表)

通过编程方式,我已经实现了,但花了6个小时才做完。

4#
发表于 2002-11-29 00:38:00 | 只看该作者
6個小時,我的娘呀,我不干啦.......
5#
发表于 2002-11-29 01:02:00 | 只看该作者
做不出来!浪费时间!
6#
 楼主| 发表于 2002-11-29 01:23:00 | 只看该作者
编程只花了几分钟,程序运行了6个小时, 罢了。
7#
发表于 2002-11-29 01:51:00 | 只看该作者
哪是不是你沒有對現狀進行程序算法優化。
8#
发表于 2002-11-29 16:13:00 | 只看该作者
有个简单办法不知是否可行:
一条纪录中的3乘以5,其他值(1和0)保持原值,累加,和除以15的整数为3的个数,余数为1的个数,13减去前两个数为0的个数。
[此贴子已经被作者于2002-11-29 8:13:27编辑过]

9#
 楼主| 发表于 2002-11-29 18:39:00 | 只看该作者
不行,比如:有5个3,6个1,2个0
(3*5)*5+(6*1)+0=81
81/15=5.4
按你的算法,有5个3,4个1,4个0,显然与结果不符。




10#
发表于 2002-11-29 19:00:00 | 只看该作者
你真的在一个表中存了1594323条记录?
其实大可不必,都是有规律的东东,干吗不去计算。
你的问题应该可用下面的办法解决:
Count3=(iif(N1="3",1,0)+iif(N2="3",1,0)+...+iif(N13="3",1,0)
Count1=(iif(N1="1",1,0)+iif(N2="1",1,0)+...+iif(N13="1",1,0)
Count0=(iif(N1="0",1,0)+iif(N2="0",1,0)+...+iif(N13="0",1,0)
然后用更新查询
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-5 19:55 , Processed in 0.117831 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表