由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - sql question
相关主题
ask for help需要帮助 -- Oracle Query
请教一个query in mysql两个Excel上的问题
请教sql server的dbo prefixHelp on SQL statement
help about SQL for ACCESSHow to write this loop SQL query?
help needed菜鸟问个问题,sql怎么计算时间间隔?
急!怎么做模糊查询?another question--怎么delete a row from a table
问一个Oralce index的问题如何用SQL语句判断一个TABLE是否存在?
请帮我看看,什么地方错了?如何only update the first occurrence in a table
相关话题的讨论汇总
话题: 2006话题: 12话题: date话题: name话题: tablename
进入Database版参与讨论
1 (共1页)
k***e
发帖数: 7933
1
a table like following:
Name Date
a 12/1/2006
b 12/1/2006
a 12/5/2006
a 12/6/2006
b 12/7/2006
b 12/20/2006
我想对每一个Name,找出Date最接近的两个记录。
上面的例子应该返回
a 12/5/2006
a 12/6/2006
b 12/1/2006
b 12/7/2006
用sql应该如何实现?
l******n
发帖数: 9344
2
先单个找出来,然后再比较?

【在 k***e 的大作中提到】
: a table like following:
: Name Date
: a 12/1/2006
: b 12/1/2006
: a 12/5/2006
: a 12/6/2006
: b 12/7/2006
: b 12/20/2006
: 我想对每一个Name,找出Date最接近的两个记录。
: 上面的例子应该返回

c*****d
发帖数: 6045
3
必须一个sql statement?

【在 k***e 的大作中提到】
: a table like following:
: Name Date
: a 12/1/2006
: b 12/1/2006
: a 12/5/2006
: a 12/6/2006
: b 12/7/2006
: b 12/20/2006
: 我想对每一个Name,找出Date最接近的两个记录。
: 上面的例子应该返回

O**K
发帖数: 11
4
select Name, Date
from (
select top 1 T1.Name, T1.Date, min(T2.Date - T1.Date) as DateDiff
from TableName as T1, TableName as T2
where T1.Name = T2.Name
and T1.Date < T2.Date
group by T1.Name, T1.Date
order by min(T2.Date - T1.Date) ) as A
union
select Name, Date + DateDiff as Date
from (
select top 1 T1.Name, T1.Date, min(T2.Date - T1.Date) as DateDiff
from TableName as T1, TableName as T2
where T1.Name = T2.Name
and T1.Date < T2.Date
group by T1.Name, T1.Date
order by min(T2.Date - T1.Date) )
w****n
发帖数: 8
5
run 的结果是:
a 2006-12-05 00:00:00.000
a 2006-12-06 00:00:00.000
b 呢?

【在 O**K 的大作中提到】
: select Name, Date
: from (
: select top 1 T1.Name, T1.Date, min(T2.Date - T1.Date) as DateDiff
: from TableName as T1, TableName as T2
: where T1.Name = T2.Name
: and T1.Date < T2.Date
: group by T1.Name, T1.Date
: order by min(T2.Date - T1.Date) ) as A
: union
: select Name, Date + DateDiff as Date

1 (共1页)
进入Database版参与讨论
相关主题
如何only update the first occurrence in a tablehelp needed
有包子!sql procedure 来rank不同table里面的数据急!怎么做模糊查询?
求助:sql server 2000, 这句话怎么写?问一个Oralce index的问题
[转载] what's wrong with this PL/SQL请帮我看看,什么地方错了?
ask for help需要帮助 -- Oracle Query
请教一个query in mysql两个Excel上的问题
请教sql server的dbo prefixHelp on SQL statement
help about SQL for ACCESSHow to write this loop SQL query?
相关话题的讨论汇总
话题: 2006话题: 12话题: date话题: name话题: tablename