免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: tigerfish
打印 上一主题 下一主题

请教一个SQL语句怎么写? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2003-09-08 10:38 |只看该作者
如果加一个字段 ,最近3胎产子数量,也可以的

论坛徽章:
0
12 [报告]
发表于 2003-09-08 13:13 |只看该作者
to 花好月不圆
你的建议我个人认为不符合实际。怎么加。
楼主的表设计已符合第三范式要求。

论坛徽章:
0
13 [报告]
发表于 2003-09-08 13:52 |只看该作者
符合什么范式并不是必要的。
如果这个表有50万条记录,你能够做到这个查询吗?
如果要求取联系5胎的,又怎么办呢?
不要死抠书本。能解决问题,才是最关键的!

论坛徽章:
0
14 [报告]
发表于 2003-09-08 16:35 |只看该作者
就是连续5胎(更多),在我的解答里稍加修改即可了。50万条记录(更多)的查询我的答案还是能做到,而且很快。
想看看你给出的详细方案。

论坛徽章:
0
15 [报告]
发表于 2003-09-08 16:40 |只看该作者
随便问一下,您看懂我写的语句的意思吗,或是根本不屑一看,就大言不惭了。如果你有更好的方案或解答,请详细说明。
笼统的批判范式,臆断的说我死抠书本,不能让我信服。
我倒想看看你是怎么
“符合什么范式并不是必要的。
如果这个表有50万条记录,你能够做到这个查询吗?
如果要求取联系5胎的,又怎么办呢?
不要死抠书本。能解决问题,才是最关键的!”的。

论坛徽章:
0
16 [报告]
发表于 2003-09-09 09:10 |只看该作者
你的语句写的太长,并且不好懂,我确实不想去看,eru 的语句倒是一眼就看懂了。
如果在表中增加一个字段,叫连续3胎产子数量是否少于21的标志,每次录入产子情况时取最近的两个计算,并得到当前是否连续3胎少于 21  也是可以的。

很多 数据库设计都不是完全按照 3NF 设计的,主要是考虑性能问题,或者其他习惯、操作等

论坛徽章:
0
17 [报告]
发表于 2003-09-09 09:23 |只看该作者
你的语句写的太长,并且不好懂,我确实不想去看,eru 的语句倒是一眼就看懂了。
如果在表中增加一个字段,叫连续3胎产子数量是否少于21的标志,每次录入产子情况时取最近的两个计算,并得到当前是否连续3胎少于 21  也是可以的。

很多 数据库设计都不是完全按照 3NF 设计的,主要是考虑性能问题,或者其他习惯、操作等

论坛徽章:
0
18 [报告]
发表于 2003-09-09 10:27 |只看该作者
难道您做项目或产品(在超过 100个表的数据库)时候全部按照3NF 设计?如果这样,真是佩服了

论坛徽章:
0
19 [报告]
发表于 2003-09-09 17:01 |只看该作者
加个标志,本是个好办法。但我认为在这里不合适。你在前台控制,语句只会更复杂,而且效率更低,增加数据库负担。你仔细想想。
我的语句的确比较难懂,但当时我设计的时候考虑到了性能,你可以在QA里将eru的语句跟我的语句执行效率做一比较,就明白了。当然,当时他那样的自连接语句我试过,限于水平通不过,不然我没必要花时间用临时表。
说到范式及其延伸,的确很少人能做到严格遵循,它是一种理论指导。就象OSI七层协议与tcp/ip的关系,现在我们也是努力追求遵循OSI七层协议构架网络。
我只是说楼主的表设计已较合理。就事论事,我可没否认在一定情况下不遵循范式。你说的性能、方便等等我也是努力去做的,只是要平衡。

论坛徽章:
0
20 [报告]
发表于 2003-09-09 17:08 |只看该作者
最初由 magicangel 发布
[B]加个标志,本是个好办法。但我认为在这里不合适。你在前台控制,语句只会更复杂,而且效率更低,增加数据库负担。你仔细想想。
[/B]



set rowcount 2
select * from pig where ear_num= 11 order by date desc
得到最近两胎数据
判断结果是否有两条 ,没有就退出 否则
取两条数据,a1,a2 ,本次数据 a3
如果符合条件
update pig set status =1 where era_num =11 and date in (\'date1,\',\'date2\')

以后查询,直接查 status =1的就可以了,限定日期也没有漏掉那些
连续3胎低于21 的胎次
按照你的程序,如果限定日期,估计会漏掉


语句怎么会更复杂呢?我查找最近两次的数量,加上本次数量,判断是否都小于21
只不过把这个查询分摊到平时使用了。效率的高低就很难说了
我每天作一点计算,你一次性做计算。我觉得本质上没有太大差异
并且也好理解。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP