未按预期获得输出

时间:2017-07-17 18:16:52

标签: sap procedure hana hana-sql-script

我正在开发SAP HANA,但我无法弄清楚如何获得预期的输出。 让我对获得输出有所了解。我正在处理一个过程,我的工作是将数据插入到我成功插入的特定表中,但数据的方式不正确。 我的输出中有3列名为: - report_date,report_week,week_end。 如果假设我从2010-01-01开始我的数据,那么周末应该从2010-01-06开始。并且通过这种方式,我希望我的数据从2010年到2030年。它应该在report_date中显示每周开始,并在week_end中显示每周结束。 report_week的作用是显示当前正在进行的周。 我的错误输出: - enter image description here

我的程序在下面发布: -

    create procedure bhavya.zz_get_series()

    LANGUAGE SQLSCRIPT
    SQL SECURITY INVOKER 
    --DEFAULT SCHEMA <default_schema_name>

    AS

    LV_START_DATE date := '2010-01-01' ;
    LV_END_DATE date   := current_date ;
    LV_WEEK_END         NVARCHAR(10) := 'FRIDAY';
    lv_report_date  Date ;



    Begin



    TT_SERIES  =  (SELECT GENERATED_PERIOD_START AS REPORT_DATE,
                     week(add_days(generated_period_start , 2)) as 
    report_week, current_date as week_end --added ABHOOT
               FROM SERIES_GENERATE_DATE ( 'INTERVAL 1 DAY', :LV_START_DATE, 

    ADD_DAYS(coalesce(current_date,:LV_END_DATE), 1)));




    TT_WEEK_END = select report_week, max(report_date) as week_end
                  from :TT_SERIES
                  group by report_week ;



    insert into "BHAVYA"."AFS_BASE.KPI.TABLES::DB_WEEK_SERIES" 
    (REPORT_DATE,REPORT_WEEK,WEEK_END) 
    select S.report_date, w.report_week, w.week_end
              from :TT_SERIES S 
              left join :TT_WEEK_END W
              on w.report_week = s.report_week;



              end; 

              call bhavya.zz_get_series

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我认为问题在于:

周(add_days(generated_period_start,2))将返回一年内的周数,因此它将始终在1到52之间。因为第N周将发生在2010年,2011年,2017年,最大值(report_date) )将始终在它发生的最后一年(所以2016年或2017年)。

TT_WEEK_END =选择report_week,max(report_date)为week_end                   来自:TT_SERIES                   group by report_week;

因此,您必须从报告日期中提取年份,并将其包含在TT_WEEK_END选择以及用于INSERT语句的join子句的组中。