SQL语句 求大神们帮忙,遇到个问题

DomanLee 2012-07-19 04:53:19
A B C
7.11 100 200 300
7.12 200 400 300
7.13 200 400 300
7.14 200 400 300
7.15 200 400 300
7.16 200 400 300
7.17 200 400 300
7.18 200 400 300
7.19 200 400 300
7.20 200 400 300
7.21 200 400 300
7.22 200 400 300
7.23 200 400 300

第一天7.11输出最多的,即C
接下来若AB中某一个连续五天大于C,即到7.16号,则等再过五天即7.22开始输出大于C的那个,即B。但第一天之后的那两个五天还是每天输出C,用SQL语句怎么实现。
...全文
155 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
以学习为目的 2012-07-25
  • 打赏
  • 举报
回复
看了半天,感觉还是看不出来什么逻辑规则
DomanLee 2012-07-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

逻辑有点复杂,LZ最好先明确写出预设的执行结果是什么.
[/Quote]
日期 合约
7.11 C
7.12 C
7.13 C
7.14 C
7.15 C
7.16 C
7.17 C
7.18 C
7.19 C
7.20 C
7.21 C
7.22 B
7.23 B
预期输出结果就是这样的。
DomanLee 2012-07-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

第二个五天 不用判断?
[/Quote]
嗯,第二个五天不管数据是什么,都继续输出C,这五天过后就开始输出之前判断的B。就这样无限的继续下去,这个过程不可逆。
DomanLee 2012-07-20
  • 打赏
  • 举报
回复
B连续大于C五天后的五天不管B再怎么变化,之后都要输出B。 每天都会有ABC三个数据,只要输出每天的那个数据就行了。
夜予 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

错了,把最后那个C改为B
[/Quote]
孤独加百列 2012-07-19
  • 打赏
  • 举报
回复
如果B连续5天大于C后的5天中又小于C了,那么输出的是B的当前值还是大于C的值还是C。若B后五天的值大于前五天的值输出当前的B还是第五天的B?
DomanLee 2012-07-19
  • 打赏
  • 举报
回复
错了,把最后那个C改为B
DomanLee 2012-07-19
  • 打赏
  • 举报
回复
日期 合约
7.11 C
7.12 C
7.13 C
7.14 C
7.15 C
7.16 C
7.17 C
7.18 C
7.19 C
7.20 C
7.21 C
7.22 B
7.23 C
预期输出结果就是这样的。
唐诗三百首 2012-07-19
  • 打赏
  • 举报
回复
逻辑有点复杂,LZ最好先明确写出预设的执行结果是什么.
DomanLee 2012-07-19
  • 打赏
  • 举报
回复
嗯,第二个五天不管数据是什么,都继续输出C,这五天过后就开始输出之前判断的B。就这样无限的继续下去,这个过程不可逆。
carpenter01 2012-07-19
  • 打赏
  • 举报
回复
第二个五天 不用判断?

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧