sql语句求助,请高手来帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/18 00:37:12
请求高手帮忙,叙述可能有些啰嗦,麻烦各位耐心看完
我有这样一张表
单位 生产数量 生产日期 ……
一班 80 20090820 ……
二班 100 20090820 ……
……
一班 100 20090825 ……
……
我想将每个单位在一个时间段内(例如在20092010-20090820)的每天生产数量与前一天数量进行比较,差值范围(
算法是(当日生产数量-前一日生产数量)/当日生产数量)大于50%的取出展示成下面一张表
单位 日期 当日产量 前一日产量 差值
一班 20090812 100 1 0.99
……
补充一外加条件:当某单位连续两天以上停产时,举个例子:一班从09年8月12日到09年8月16日停产,这5天生产数量为0,则将一班2009年8月12日数据展现为:
单位 日期 当日产量 前一日产量 差值
一班 20090812 0 50 1
而要求13日到16日数据不显示
请问如何实现。

select a单位,a.产量 as 当日产量,a. 生产日期,isnull(b.产量,0) as 前日生产量,
((a.产量-b.产量)/a.产量) as 差值
from 表 a join
(select 产量,生产日期,单位 from 表
where 生产日期 in (select dateadd(day,-1,生产日期) as 时间 from 表))b
on a.单位=b.单位
你试试吧,确保的产量不是int型

用游标咯,想直接写一条语句完成?自找麻烦。