询问个sql(标题好像描述不清楚)

有一销售成绩表,字段包括(业务号,销售时间,销售金额)
sales_result(business_no,sales_date,sales_Amount)
001,20080101,50000
002,20080102,40000
003,20080201,70000
004,20080301,60000
问:  销售金额从20080101开始(含)计算,当金额到达150000时的时间是多少?
结果:20080201。
听起来很实用,可sql还真没写过类似的。平常都是根据时间统计金额的。
请问这个sql该怎么写?
我也来说两句 查看全部回复

最新回复

  • nemo410 (2008-10-22 15:14:13)

    用分析函數
  • n_9698 (2008-10-22 16:54:28)

    能说一下是那个分析函数码,乱找了几个好像都不使用。
  • gavinhuang (2008-10-22 17:14:59)

    SQL> Create Table sales_result(business_no varchar2(3),sales_date varchar2(10),sales_Amount numeric(18,4));

    Table created

    SQL> Insert Into sales_result values('001','20080101',50000);

    1 row inserted

    SQL> Insert Into sales_result values('002','20080102',40000);

    1 row inserted

    SQL> Insert Into sales_result values('003','20080201',70000);

    1 row inserted

    SQL> Insert Into sales_result values('004','20080301',60000);

    1 row inserted

    SQL> Select * From sales_result;

    BUSINESS_NO SALES_DATE         SALES_AMOUNT
    ----------- ---------- --------------------
    001         20080101             50000.0000
    002         20080102             40000.0000
    003         20080201             70000.0000
    004         20080301             60000.0000

    SQL> Select Min(Sales_date)
      2    From (Select sales_date, Culmulative_Sum
      3            From (Select Business_no,
      4                         sales_date,
      5                         Sales_amount,
      6                         Sum(Sales_amount) over(order by sales_date) as Culmulative_sum
      7                    From sales_result
      8                   Where Sales_date >= '20080101') T
      9           Where Culmulative_sum > 150000) S;

    MIN(SALES_DATE)
    ---------------
    20080201

    SQL> Drop table Sales_result;

    Table dropped

    [ 本帖最后由 gavinhuang 于 2008-10-22 17:19 编辑 ]
  • regonly1 (2008-10-22 20:32:37)

    和4楼的差不多,呵呵,不过没他的严谨
    select min(aa.sales_date) from (
    select sr.*, sum(sr.sales_amount) over(order by sr.sales_date) sm
    from sales_result  sr) aa
    where aa.sm >= 150000
  • n_9698 (2008-10-23 16:12:41)

    多谢各位。
    下来好好研究一下分析函数的实用。