免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2344 | 回复: 6
打印 上一主题 下一主题

请教一个查询的写法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-17 18:55 |只看该作者 |倒序浏览
表结构如下:

name_1    date_1                  number_1
1               2008-01-01           103
1               2008-01-02            105
1               2008-01-03            109
......
1               2008-02-17            168

2               2008-01-01            800
......
2               2008-02-17            900
......

600           2008-01-01            1
600           2008-01-02            5
......
600           2008-02-17             68


1.现在想查询针对给定的某个NAME,当前的number_1比10天前的number_1增加了多少?
2.想查询针对每一个NAME,当前的number_1比10天前的number_1增加了多少,并且输出按从低到高排序?

这两个查询怎么写法?

谢谢!

主索引由name_1和date_1组合而成。

论坛徽章:
0
2 [报告]
发表于 2008-02-17 21:17 |只看该作者
自言自语一下:

CREATE一个临时表,取当前时间对应的NUMBER为一列,取10天前对应的NUMBER为另一列

相减,得所需结果

可以再排序然后输出

[ 本帖最后由 col.g 于 2008-2-17 22:33 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-02-17 22:38 |只看该作者
你这样还不如用存储过程实现

论坛徽章:
0
4 [报告]
发表于 2008-02-17 23:50 |只看该作者
原帖由 showsa 于 2008-2-17 22:38 发表
你这样还不如用存储过程实现


有道理,不过得等我学会了存储过程之后才可以,哈哈

谢谢showsa

论坛徽章:
0
5 [报告]
发表于 2008-02-18 11:33 |只看该作者

回复 #1 col.g 的帖子

楼主的提出的问题不够严谨,日期是否连续?连续的话很简单,不连续的话是取最接近10天中的哪一天(比如第9天还是第11天)?

论坛徽章:
0
6 [报告]
发表于 2008-02-18 12:28 |只看该作者
我这里假设表名为test,日期不连续,取10天内最大的那天(先取第10天,没有取第9天,以此类推)

SELECT b.name_1, b.date_1, (b.number_1 - a.number_1) AS result
FROM test a, test b
WHERE a.name_1 = b.name_1
AND DATE_ADD( a.date_1, INTERVAL 10 DAY ) >= b.date_1
GROUP BY b.date_1
HAVING min( DATE_ADD( a.date_1, INTERVAL 10 DAY ) )

如果取的是第11天之类,改一下就可以了。
如果要排序加order by 就可以了,当然会有性能损失。

论坛徽章:
0
7 [报告]
发表于 2008-02-20 02:25 |只看该作者
非常非常感谢sunnyfun!  

确实我没有说在第10天不存在的情况下到底是取9还是11天,原因是想简化问题,因为我连怎么简单地取第10天都不知道

你提供的这个例子给我这个初学者提供了很好的示例

再一次感谢!

MY SQL的指南只是简单的语法介绍,学起来有点辛苦哈

市场上讲SQL的书不怎么多,有的多半是针对ORACLE或MS SQL SERVER,想下手有点犹豫。不过想想大家应该都往ANSI SQL 92(是这个哈?)靠,所以实在不成,找本厚的买吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP