前些天有个朋友拿了一个问题过来,我一看就懵了,Group 组内数据筛选,俺可没玩过
而且貌似SQL 不具备这样的特性,在网上搜集资料之后,用了数据"躲猫猫"的办法变相的实现了功能...
问题如下:
朋友现在正在做并想要的功能,(股价竞猜系统)
每天的收盘价 竟猜 系统,
每天只有一个收盘价 ,但竟猜的数据很多
最后获奖人只有一个 也就是提交数值 跟收盘价在 正负10以内 ,提交最早的一位
写个SQL 自动找出每天 获奖的人
tb_Guesses 这个表是 竟猜表 GuessPrice(客户竟猜价) OpTime(竞猜时间)ProductID(股票ID)
tb_CloQuos 这个是每天的的收盘价表 CloQuotation(每天唯一收盘价) CloTime(收盘时间)ProductID(股票ID)
表结构图示如下:
规则说明:
/////////////////////////////////////
24号如果 有一个 是收盘价 3500
另一个表里24号竟猜价 有 一个 3501 ,3505,3491
我要只取 一个 3501
/////////////////////////////////
如 24号竟猜价 有 3501(添加时间 24号 8点),3501(添加时间 24号 7点), ,3505,3491
那么我只取 3501(添加时间 24号 7点) 这一条数据
以下是我写的 SQL CODE ,刚刚写出来,还不知道怎么优化..有路过的大大知道怎么优化的麻烦帮个忙优化一下
Code