Working day formula that excludes weekends and holidays in WEBI

Hi Guys,
Can we calculate a working day formula that excludes weekends and holidays in WEBI OR in Universe?
The universe I am working on is using stored procedures, so there are no joins or modelling done. Although there is a workday stored proc  that I can bring in the universe.
I am just thinking if there is no modelling or joins done in the universe how will this help me in webi?
Your suggestions will be very helpful.
Thanks,
Jitan

One more suggestion I need from you  -
I have a Work_Calendar_VW that has the following columns -
Calendar_Date - 5/1/2014
Calendar_Year - 2014
Calendar_Month - 5
Calendar_Day - 1
Work_Day - 1
Day_Type - WD (Work Day)  For Weekends this will be displayed as WE
The columns have all dates for current year in SQL Server.
I am going to pull this into the universe and create 2 derived tables to calculate MTD Day counts.
Derived Table 1  - Calculate Yest Work Day... this will remove all the weekends and holidays and give me the last working day. This includes couple of case statments to check each day if it's a working day or weekend.
For Work Day the above code will be 1 and for weekend 0
Derived Table 2  - This will give me the count of working days in current month using the above view and Derived table 1 Below is the code  -
SELECT COUNT(*)
FROM Work_Calendar_VW
WHERE [Work_Day] = 1 AND
   (Calendar_Date BETWEEN CAST(CONVERT(VARCHAR(25),MONTH(LastWoringkday()),101) + '/01/'
   + CONVERT(VARCHAR(25),YEAR(LastWoringkday()),101) AS DATE)
  AND LastWoringkday()).
I cannot do joins because this universe has been built using stored proc and would like to implement this in BO universe.
let me know if this is the right approach.
Thanks,
Jitan

Similar Messages

  • Time between dates excluding Weekends and Holidays

    I am fairly new to Power Pivot and I am having trouble with this formula.  I need my Cycle Time Days column to capture the days between CreatedDataTime and ClosedDateTime excluding Weekends and Holidays.  I have a tab that has the holidays but
    I can't get the formula correctly?   Jill
    CreatdDateTime        ClosedDateTime     Cycle Time Days
    12/1/2014                    12/10/2014

    first of all you need a separate time table which holds all possible dates for your model
    there should be no gaps, it should contain full years and a column of datatype DateTime as unique key
    once you have this in place add a calculated column to this table as 
    =IF(INT(FORMAT([Date], "w")) >= 6, "Weekend", "Workday")
    then go back to your original table and add the following calculation for your [Cycle Time Days]-column:
    =COUNTROWS(
    FILTER(
        'Dates',
        Dates[Date] >= DateRanges[DateFrom]
        && Dates[Date] <= DateRanges[DateTo]
        && 'Dates'[IsWeekend] = "Workday"
    Holidays are a bit more tricky but you can follow the same pattern but you need to get the holidays from somewhere
    hth,
    -gerhard
    Gerhard Brueckl
    blogging @ http://blog.gbrueckl.at
    working @ http://www.pmOne.com

  • DATEADD excluding weekends and holidays

    select getdate(),dateadd(day,15,Getdate())
    THis gets me today and 15 days from now. However I need 15 business days. I need to exclude weekends and holidays in here so that is looks like this. 
    where fulldate between getdate() and dateadd(day,15,Getdate())
    I have a dim table for dates and have an isholiday = 0 or 1. I just can't figure out how to include this in the DATEADD expression.

    Hi,
    try this link
    http://www.sqlservercentral.com/Forums/Topic1247790-391-1.aspx
    Hope will help you,
    Questo post è fornito &quot;così com'è&quot;. Non conferisce garanzie o diritti di alcun tipo. Ricorda di usare la funzione &quot;segna come risposta&quot; per i post che ti hanno aiutato a risolvere il problema e &quot;deseleziona
    come risposta&quot; quando le risposte segnate non sono effettivamente utili. Questo è particolarmente utile per altri utenti che leggono il thread, alla ricerca di soluzioni a problemi similari. ENG: This posting is provided &quot;AS IS&quot;
    with no warranties, and confers no rights. Please remember to click &quot;Mark as Answer&quot; on the post that helps you, and to click &quot;Unmark as Answer&quot; if a marked post does not actually answer your question. Please Vote This As
    Helpful if it helps to solve your issue. This can be beneficial to other community members reading the thread.

  • Add working days to a date excluding weekends and holidays

    Hi there,
    I need to write a function that will take a specified date and number of days to add as input parameters, and return the working day based on the number of days to add parameter, excluding weekends and any holidays held in a holiday table.
    Here is my function so far -
    CREATE OR REPLACE FUNCTION f_add_work_days(pd_date IN DATE
    ,pn_add_days IN PLS_INTEGER) RETURN DATE IS
    pd_in_date DATE := pd_date;
    ld_next_holiday DATE;
    ln_days_left PLS_INTEGER := pn_add_days;
    CURSOR cu_holiday(pn_date IN ge740.holdte%TYPE) IS
    SELECT pck_utility.f_dtcnv(g.holdte)
    FROM ge740 g
    WHERE g.holdte >= pn_date
    AND g.maint <> 'D'
    ORDER BY g.holdte ASC;
    BEGIN
    OPEN cu_holiday(pck_utility.f_dtcnv(pd_in_date));
    FETCH cu_holiday
    INTO ld_next_holiday;
    CLOSE cu_holiday;
    LOOP
    IF ln_days_left = 0 THEN
    EXIT;
    END IF;
    pd_in_date := pd_in_date + 1;
    IF pd_in_date > ld_next_holiday THEN
    OPEN cu_holiday(pck_utility.f_dtcnv(pd_in_date));
    FETCH cu_holiday
    INTO ld_next_holiday;
    CLOSE cu_holiday;
    END IF;
    CASE
    WHEN TO_CHAR(pd_in_date
    ,'fmDAY') = 'SATURDAY' THEN
    pd_in_date := pd_in_date + 2;
    ln_days_left := ln_days_left - 1;
    WHEN TO_CHAR(pd_in_date
    ,'fmDAY') = 'SUNDAY' THEN
    pd_in_date := pd_in_date + 1;
    ln_days_left := ln_days_left - 1;
    WHEN pd_in_date = ld_next_holiday THEN
    pd_in_date := pd_in_date + 1;
    ln_days_left := ln_days_left - 1;
    ELSE
    ln_days_left := ln_days_left - 1;
    END CASE;
    END LOOP;
    RETURN(pd_in_date);
    END f_add_work_days;
    I think there is something wrong/missing in the logic as I can't get it to cater for say a double bank holiday(25/26th Dec - if the input parameters are 24/12/2007 and 2, which should return the 28th but returns the 26th!!).
    I'm relatively new to PL/SQL and Oracle, so any help, advice, ideas would be greatly appreciated!
    thanks in advance

    smth like
    SQL> with holidays as (select to_date('10.06.2007','dd.mm.yyyy') h_dt from dual),
      2       par as (select to_date('08.06.2007','dd.mm.yyyy') dt, 2 add_days from dual)
      3  --
      4  select min(dt) needed_date
      5    from (select p.*,
      6                 h.*,
      7                 mod(to_char(dt, 'j'), 7),
      8                 sum(decode(mod(to_char(dt, 'j'), 7), 5, 0, 6, 0, 1)+--get rid of sat and sun
      9                     nvl2(h_dt, -1, 0)--check if the day is holiday
    10                     ) over(order by dt) s
    11            from (select dt + level dt, add_days
    12                    from par
    13                  connect by level <= 100) p,
    14                 holidays h
    15           where h_dt(+) = dt
    16           order by 1)
    17   where add_days = s
    18  /
    NEEDED_DATE
    13.06.2007
    SQL> ?
    Message was edited by:
    Volder
    PS What Oracle version are you on?

  • Delivery Date should propose only working days (Excluding weekends and holidays

    Hello All
    I have one requirement here, where delivery dates should propose only working days and it should not allow to add weekends and holidays during the creation of sales order.
    I would like to know if there are any standard settings to be done in plant or shiping point?
    Kindly need all your input on this
    Thanks
    Naveen

    Hello All
    Same calendar has already been assigned in shipping point,plant and sales org and also in the calendar holidays been maintained, even though when we create a sales order it will accept weekends and holidays
    Thanks

  • Payment term with fixed day but exclude weekends and holidays

    Hello,
    our customer has a requirement to have payment term that is like this:
    Due date: fixed day 15th next month.
    If due date falls in weekend or holiday due date will move to next business (working) day.
    We have working payment term which is always the 15th on next month but it falls to weekends.
    I was searching SDN found something but not working.
    Could you please send me a step-by-step configuration how to exclude the weekends and holidays?
    Thank you a lot.
    Best regards,
    Lubos

    Dear Lubos,
    unfortunately waht You need to have It is impossible into the SAP Standard System.
    Please be aware that the vendor invoice has two relevant dates:
    Baseline date   > INVFO-ZFBDT
    Due on   > INVFO-NETDF
    The Baseline date is managed by the "Term of payment",  transaction obb8, frame
    "Baseline date calculation" where You can put for example :
    Fixed day            30
    Additional months     3
    This means that if You put as Document date 01.01.2009, the baseline date
    will be 30.04.2009 (fixed day 30, additional months 3).
    The "Due on" date will start ALWAYS from "the Baseline date"
    (that in my example is 30.04.2009) and according to the below
    "Term of payment" , the System will add
    31 days, so the Due on date will be 31.05.2009.
    Term      Percentage   No. of days  /  Fixed date  Additional months
    1.               %      31
    2.               %
    3.
    You could think to use the FI substitution to reach Your goal.
    Mauri

  • Calculate the Difference Between two dates excluding weekends and Holidays

    Hi,
    We need to calculate the difference between the two dates by excluding the Local public holidays (It is global and varies across countries) and weekends should not be included in calculation for a business day in OBIEE.
    We have two dates: Open date and close date when ever close date is null we are calculating age based on taking the current timestamp and need to exclude the weekends and Holidays when ever the close date is null.
    Ex:
    Col1 col2 Total
    11/9/2010 2:46:38 PM Null 13
    11/2/2010 8:06:26 PM 11/3/2010 5:37:03 PM 1
    (In the Total we shouldn't include the weekends,holidays)
    Please let me know how to calculate the difference between two dates by excluding the weekends and holidays.
    Thanks
    Edited by: user10441472 on Nov 22, 2010 3:14 PM

    You already asked this question and I answered it...
    Re: calculation of Business day in OBIEE

  • Exclude Weekends and Holidays while applying for leave...

    Hi,
    Could anyone help me out in excluding holidays while applying for leave via absence management (employee self service) in R12? While clicking on calculate duration it includes weekends as well by default. Since updating the formula BG_ABSENCE_DURATION will involve creating UDTs, modify UDF and additional effort; I tried creating workschedulle and updated the profile HR: Schedule Based Absence Calculation to 'Yes' following the metalink note 'Schedule Based Absence Calculation in Self Service' [ID 437083.1] but no luck. Is there any other additional setup that needs to be done or its better to update Fast Formula. Kindly advise on the same. Thanks in Advance!!!
    Thanks,
    Ahmed

    Thanks much Gaurav. I was able to work it out by creating work schedule itself. I reckon I missed out selecting the schedule pattern. We need to ensure that after creating schedule the pattern needs to be selected and launched. After a while it gets effected in the system. Just in case if others are trying to implement work schedule for working days between Saturday to Wednesday following are the step involved. I have created two schedule pattern with day start as 1 and day stop as 4; and another pattern with day start as 7 and day stop as 7. It works like charm....:)
    Regards,
    Ahmed

  • Date difference function that returns minutes between two dates and excludes weekends and holidays

    Is there a way to get this to work as a function? 
    Currently returns error "Select statements included within a function cannot return data to a client"
    CREATE FUNCTION [dbo].[WorkDays](@DateFrom datetime,@DateTo datetime)
    RETURNS int
    AS
    BEGIN
    --Working time
    DECLARE @WTFrom TIME = '8:00AM';
    DECLARE @WTTo TIME = '5:00PM';
    DECLARE @minCount BIGINT
    --Date ranges
    IF (DATEDIFF(HOUR, @DateFrom, @DateTo) > 12)
    BEGIN
    WITH CTE AS
    SELECT @DateFrom AS DateVal
    UNION ALL
    SELECT DATEADD(HOUR, 1, DateVal)
    FROM CTE
    WHERE DateVal < DATEADD(HOUR, -1,@DateTo)
    SELECT DATEDIFF(minute, MIN(CTE.DateVal), MAX(CTE.DateVal))
    FROM CTE
    WHERE (CAST(CTE.DateVal AS time) > @WTFrom AND CAST(CTE.DateVal AS time) < @WTTo) AND DATEPART(dw, CTE.DateVal) NOT IN (1, 7) AND NOT EXISTS (SELECT * FROM Holiday AS H WHERE H.holiday = CTE.DateVal)
    OPTION (MAXRECURSION 0);
    END;
    ELSE
    BEGIN
    WITH CTE AS
    SELECT @DateFrom AS DateVal
    UNION ALL
    SELECT DATEADD(MINUTE, 1, DateVal)
    FROM CTE
    WHERE DateVal < DATEADD(MINUTE, -1,@DateTo)
    SELECT DATEDIFF(minute, MIN(CTE.DateVal), MAX(CTE.DateVal))
    FROM CTE
    WHERE (CAST(CTE.DateVal AS time) > @WTFrom AND CAST(CTE.DateVal AS time) < @WTTo) AND DATEPART(dw, CTE.DateVal) NOT IN (1, 7) AND NOT EXISTS (SELECT * FROM Holiday AS H WHERE H.holiday = CTE.DateVal)
    OPTION (MAXRECURSION 0);
    END;
    END
    Thanks for your help.

    Please post DDL, so that people do not have to guess what the keys, constraints, Declarative Referential Integrity, data types, etc. in your schema are. Learn how to follow ISO-11179 data element naming conventions and formatting rules (you do not). Temporal
    data should use ISO-8601 formats (you do not!). Code should be in Standard SQL as much as possible and not local dialect. 
    This is minimal polite behavior on SQL forums. 
    We hate functions in SQL. This is a declarative language and you are using it like 1950's FORTRAN. We hate local variables (more FORTRAN!)
     The name of a function has to be either a known, common name, like “sine”, “cosine” etc. Or it is “<verb>_<object>”; you think a noun is a verb! Do you really need BIGINT? Why did you invite garbage data with it? Why do you think that SQL
    uses AM/PM? Have you never seen the TIME data type? 
    Think about “date_val” as a data element name. A date is a unit of temporal measurement on a calendar scale. This would be a “<something>_date” in a valid schema. 
    >> Is there a way to get this to work as a function? <<
    Probably, but why do it wrong?
    Build a calendar table with one column for the calendar data and other columns to show whatever your business needs in the way of temporal information. Do not try to calculate holidays in SQL -- Easter alone requires too much math.
    The julian_business_nbr is how SQL people do this. Here is the skeleton. 
    CREATE TABLE Calendar
    (cal_date DATE NOT NULL PRIMARY KEY, 
     julian_business_nbr INTEGER NOT NULL, 
    Here is how it works:
    INSERT INTO Calendar 
    VALUES ('2007-04-05', 42), 
     ('2007-04-06', 43), -- Good Friday 
     ('2007-04-07', 43), 
     ('2007-04-08', 43), -- Easter Sunday 
     ('2007-04-09', 44), 
     ('2007-04-10', 45); --Tuesday
    To compute the business days from Thursday of this sample week to next Tuesday:
    SELECT (C2.julian_business_nbr - C1.julian_business_nbr)
      FROM Calendar AS C1, Calendar AS C2
     WHERE C1.cal_date = '2007-04-05',
       AND C2.cal_date = '2007-04-10'; 
    See how simple it can be when you stop trying to write FORTRAN and think in sets? 
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • Calculating number of days without weekend and holidays

    Hallo all,
    can someone help me with a formular to calculate the number of days with Crystal Reports 2008 between two dates without weekends and holidays
    eg.
    date one = 03/24/2010
    date two = 03/29/2010
    Result should be 4 days as 03/27 and 03/28 will be a weekend.
    Plus how to exclude holidays ?
    Thank you very much
    Gerald

    As Doug mentioned, Holidays are very location specific, and are you talking about "corporate holidays" where the company is closed, or "public holidays" where banks (<g>) are closed?
    I'd suggest setting up a calendar table (if you don't have one already), one record per date.  You could make it work-days only, days-off only, or all dates with a flag to indicate if it is a work date.  You could then use that to count the number of work days.  By using a table, you wouldn't have to change any code to (a) extend your calendar to the following year, or (b) change holiday dates if the holidays change.  (I'm thinking corporate holidays, where the company might be closed Friday 12/24/10 in observation of Christmas, but would usually only close on the 25th.)
    HTH,
    Carl

  • Calculating Work Day Formulas

    We've recently adopted BOBJ/Webi at my company and I find the software to be rather easy to use in some instances and mind-wreckingly hard in others. One roadblock myself and other users are bumping into is calculating work days. A definition of a work day in this instance would be Monday through Friday. The monkey wrench is that we would also like to subtract out holidays, such as July 4th and Thanksgiving. Then end product would be calculating out what work day the current date is and how many days it is out of so that a simple straight-line extrapolation can be made (Metric/Current Work Day)*Total Work Days. Also, what we invoice/ship is not accounted for until the following day... for example, today (2.22.10) would be the 15th workday in February out of 20 total work days.
    Appreciate any and all help/assistance/counsel I can get on this.
    Ryan

    Hi Ryan,
    If I have understood your question then I think following solution may help you.
    Do you have your Universe created on the top of BW query or is it some other Database?
    If it is some other database then create couple of Filter at Universe level: Such as Holidays so that you can use this one to subtract holidays:
    For Example:
    ucase(Calendar_year_lookup.Holiday_Flag)
    ucase(Calendar_year_lookup.Holiday_Flag) = 'Y'
    Then you create another Dimension for Work days that would be between Monday to Friday.
    Once they are created in Universe you export Universe.
    Now create a formula where you would use month minus custom dimension workdays and minus holidays to get actual work days which would be from Monday to Friday and son on.
    Basically we can achieve this by using filters and formulas.
    Wish you good luck.
    Bashir Awan

  • Need working days for a particular month and year

    Hi,
    I need the number of working days for a particular month and year.Saturdays and Sundays are holidays.
    Regards,
    Vignesh

    Try this:
    SQL> var yr NUMBER;
    SQL> exec :yr := 2010;
    PL/SQL procedure successfully completed.
    SQL> with t as (select :yr yr from dual)
      2  SELECT TO_CHAR(dat,'MON-RR'),COUNT(*) FROM
      3  (select TO_DATE('01-JAN-'||yr) + lv dat FROM
      4  (select level - 1 lv,yr from t
      5  connect by level <= TO_DATE('31-DEC-'||yr) - TO_DATE('01-JAN-'||yr) + 1))
      6  WHERE TO_CHAR(Dat,'DY') NOT IN ('SAT','SUN')
      7  GROUP BY TO_CHAR(dat,'MON-RR');
    TO_CHAR(DAT,   COUNT(*)
    APR-10               22
    AUG-10               22
    DEC-10               23
    FEB-10               20
    JAN-10               21
    JUL-10               22
    JUN-10               22
    MAR-10               23
    MAY-10               21
    NOV-10               22
    OCT-10               21
    TO_CHAR(DAT,   COUNT(*)
    SEP-10               22
    12 rows selected.
    SQL> Edited by: AP on Jul 27, 2010 7:54 AM

  • Show Working days transaction on Weekends and Holidays

    Hi,
    I have an objective to show last working days transaction (consider Friday) on Saturday and Sunday, also
    if the next day is also a Holiday then i have to post previous days transactions on Holiday too.
    Example:I need to show Friday Sep 1,2006 Transactions on
    Sep 2,2006
    Sept 3,2006
    Sep 4,2006 (Labor Day -- Holdiay)
    Restriction:PL/SQL not allowed( i know it is hard to believe ..sorry)
    Here is the Query that i have written which takes care of Sat and Sundays.I am having problem with Posting the data on Holidays.
    -- This Query selects all working days only
    select TRADE_DATE,
    Case when PORT_ID = 'FFSEX5' then SUM(PRINCIPAL) End as FFSDirect,
    Case when PORT_ID = 'FFSEX5' then trunc(AVG(RATE),2) End as FFSDirect_Avg,
    Case when PORT_ID in ('FFSEX3', 'FFSEX2', 'CLS') then SUM(PRINCIPAL) End as FFSBroker,
    Case when PORT_ID in ('FFSEX3', 'FFSEX2', 'CLS') then trunc(AVG(RATE),2) End as FFSBroker_Avg,
    Case when PORT_ID in ('EPIEX3', 'ACK', 'ETCEX3', 'CKD') then SUM(PRINCIPAL) End as Euro3,
    Case when PORT_ID in ('EPIEX3', 'ACK', 'ETCEX3', 'CKD') then trunc(AVG(RATE),2) End as Euro3_Avg,0 AS FLAG
    FROM CV_TRADE_HIST
    Group by port_id,Trade_date
    Union
    -- Accumulates Saturdays
    select (TRADE_DATE+1) as Trade_Date,
    Case when PORT_ID = 'FFSEX5' then SUM(PRINCIPAL) End as FFSDirect,
    Case when PORT_ID = 'FFSEX5' then trunc(AVG(RATE),2) End as FFSDirect_Avg,
    Case when PORT_ID in ('FFSEX3', 'FFSEX2', 'CLS') then SUM(PRINCIPAL) End as FFSBroker,
    Case when PORT_ID in ('FFSEX3', 'FFSEX2', 'CLS') then trunc(AVG(RATE),2) End as FFSBroker_Avg,
    Case when PORT_ID in ('EPIEX3', 'ACK', 'ETCEX3', 'CKD') then SUM(PRINCIPAL) End as Euro3,
    Case when PORT_ID in ('EPIEX3', 'ACK', 'ETCEX3', 'CKD') then trunc(AVG(RATE),2) End as Euro3_Avg,0 AS FLAG
    FROM CV_TRADE_HIST Where to_char(trade_date,'dy')='fri'
    Group by port_id,Trade_date
    Union
    -- Accumulates Sundays
    select (TRADE_DATE+2) as Trade_Date,
    Case when PORT_ID = 'FFSEX5' then SUM(PRINCIPAL) End as FFSDirect,
    Case when PORT_ID = 'FFSEX5' then trunc(AVG(RATE),2) End as FFSDirect_Avg,
    Case when PORT_ID in ('FFSEX3', 'FFSEX2', 'CLS') then SUM(PRINCIPAL) End as FFSBroker,
    Case when PORT_ID in ('FFSEX3', 'FFSEX2', 'CLS') then trunc(AVG(RATE),2) End as FFSBroker_Avg,
    Case when PORT_ID in ('EPIEX3', 'ACK', 'ETCEX3', 'CKD') then SUM(PRINCIPAL) End as Euro3,
    Case when PORT_ID in ('EPIEX3', 'ACK', 'ETCEX3', 'CKD') then trunc(AVG(RATE),2) End as Euro3_Avg,0 AS FLAG
    FROM CV_TRADE_HIST Where to_char(trade_date,'dy')='fri'
    Group by port_id,Trade_date
    UNION
    -- TO ADD HOLIDAYS TO THE RECORD SET
    SELECT HOLI_DT AS TRADE_DATE,
    0 AS FFSDirect,
    0 AS FFSDirect_Avg,
    0 AS FFSBroker,
    0 AS FFSBroker_Avg,
    0 as Euro3,
    0 AS Euro3_Avg,
    0 AS Euro4,
    1 AS FLAG
    FROM V_INTR_SRC_HOLIDAY
    WHERE TO_NUMBER(TO_CHAR(HOLI_DT,'YYYY'))=2006 and TO_CHAR(HOLI_DT,'DY') NOT IN ('SAT','SUN')
    ORDER BY 1 DESC
    Logic i was trying (I NEED TO POST THE PREVIOUS DAYS TRANSACTIONS WHERE FLAG=1 WHICH IS A HOLIDAY.using Lag())
    ****My constraint is no PL/SQL and no DML is allowed.
    Please let me know is there anyway i can achieve this.I tried using Lag(), it did not work for me,Any suggestions?
    Thank you,
    Jay Brahmanapalli
    Message was edited by:
    user530625

    Here's a simple version:
    Setup:
    drop table trade_history
    create table trade_history
    ( trade_date date not null
    , amount number not null
    , ticker varchar2(6) not null
    declare
        tdate date;
        tamount number;
    begin
        tdate := trunc(sysdate);
        for i in 1..365 loop
            tdate := tdate - 1;
            tamount := 200 - i;
            insert into trade_history (trade_date, amount, ticker)
            values (tdate, tamount, 'ORCL');
        end loop;
    end;
    commit
    drop table holidays
    create table holidays
    ( holiday_date date not null
    , previous_business_date date not null
    , holiday_name varchar2(240)
    insert into holidays (holiday_date, previous_business_date, holiday_name)
    values ('25-DEC-05','24-DEC-05','Christmas Day')
    insert into holidays (holiday_date, previous_business_date, holiday_name)
    values ('26-DEC-05','24-DEC-05','Boxing Day')
    insert into holidays (holiday_date, previous_business_date, holiday_name)
    values ('06-SEP-06','05-SEP-06','A midweek example')
    insert into holidays (holiday_date, previous_business_date, holiday_name)
    values ('04-SEP-06','01-SEP-06','A Monday example')
    insert into holidays (holiday_date, previous_business_date, holiday_name)
    values ('07-AUG-06','04-AUG-06','A two day post w/e example')
    insert into holidays (holiday_date, previous_business_date, holiday_name)
    values ('08-AUG-06','04-AUG-06','A two day post w/e example')
    insert into holidays (holiday_date, previous_business_date, holiday_name)
    values ('26-DEC-06','24-DEC-06','Boxing Day 2006')
    commit
    /And a very simple example query
    select last_business_day, ticker, sum(amount), count(amount)
    from (
    select nvl(hol.previous_business_date, trade_date)
           - case to_char(nvl(hol.previous_business_date, trade_date),'D')
                        when '7' then 2
                        when '6' then 1
                        else 0
                        end last_business_day
         , ticker, amount
    from   trade_history th
    left join holidays hol on hol.holiday_date = th.trade_date
    group by last_weekday, ticker
    order by 1,2You should be able to build on that example, I hope. If you can't add the previous_business_date to your holiday table, then it gets slightly more complicated (because you have to skip back through consecutive holidays AND weekends AND any more consecutive holidays - ie in UK you'd have to skip back through Easter Monday, the Easter Weekend and Good Friday - last busines day is what we call Maundy Thursday.
    HTH
    Regards Nigel

  • Working days formula and Crystal 7 - is it possible?

    Post Author: Tim F
    CA Forum: Formula
    Hi folks,
    Really hope someone can help, I'm struggling with writing a report that needs to show the difference between two dates in working days. I've found the same formula posted here several times but cannot get it to return a logical value in my report. I'm wondering if that might be because I'm using an older version of Crystal? The formula in question is this one:
    //Main formulaWhileReadingRecords;Local DateVar Start := ({PPV_COMPLAINTSEH.DTRECD});   Local DateVar End := ({PPV_COMPLAINTSEH.ACTCMPLTD}); Local NumberVar Weeks; Local NumberVar Days; Local Numbervar Hol;DateVar Array Holidays;
    Weeks:= (Truncate (End - dayofWeek(End) + 1 - (Start - dayofWeek(Start) + 1)) /7 ) * 5;Days := DayOfWeek(End) - DayOfWeek(Start) + 1 + (if DayOfWeek(Start) = 1 then -1 else 0)  + (if DayOfWeek(End) = 7 then -1 else 0);  
    Local NumberVar i;For i := 1 to Count (Holidays)do (if DayOfWeek ( Holidays&#91;i&#93; ) in 2 to 6 and      Holidays&#91;i&#93; in start to end then Hol:=Hol+1 );
    Has anyone come across an alternative way of doing this, or have any ideas why this formula is not working in my report? Any advice would be much appreciated,
    Regards,
    Tim

    Post Author: Charliy
    CA Forum: Formula
    You set up a Running Total.  Drag the filed you want Summed, Select Sum as the operation if that is not the default.
    Just below that you weill see Radio Buttons that say For Every Record, On Change of Group, On Change of Field, Use a Formula, etc - click the one that says Use a Formula.  The Blue Bos to its right will turn Red, click on it, this is where you put your formula: NOT(DATEPART('w',{table.date}) IN &#91;6,7&#93;)
    Save that, then just decide if you want it reset on a Change of Group, or Never (Grand Total).  Give it a name and put it on your report.

  • Working days between two date fields and Changing Factory Calendar

    Hi,
    I have to calculate working days between two date fields excluding the weekends and public holidays for Switzerland.
    I have written the routine using factory calender and its working fine except for two problems now:
    1. If any one of the date field is empty then teh rsult should be zero.
    2. And the below code is working from 1996 but my cleints wants it to work for years before 1996 as well.
    I also tried to change the Start date in SCAL for factory calendar but it says enter values between 1995 to 2020.
    I am new to ABAP. Please help me how i can achieve these for below code.
    DATA: IT_HOLIDAYS type TABLE OF ISCAL_DAY,
          IS_HOLIDAYS TYPE ISCAL_DAY.
    DATA: T_DATE TYPE SY-DATUM,
          P_DATE TYPE SY-DATUM.
    DATA : X_DATE(4) TYPE C.
    DATA: CNT TYPE I.
    REFRESH : IT_HOLIDAYS.
    CLEAR : IT_HOLIDAYS.
    T_DATE = SOURCE_FIELDS-/BIC/ZCCCHP812.
    P_DATE = SOURCE_FIELDS-/BIC/ZCCCHP810.
    CALL FUNCTION 'HOLIDAY_GET'
    EXPORTING
    HOLIDAY_CALENDAR = 'CH'
    FACTORY_CALENDAR = 'CH'
    DATE_FROM = P_DATE
    DATE_TO   = T_DATE
    TABLES
    HOLIDAYS = IT_HOLIDAYS
    EXCEPTIONS
    FACTORY_CALENDAR_NOT_FOUND = 1
    HOLIDAY_CALENDAR_NOT_FOUND = 2
    DATE_HAS_INVALID_FORMAT = 3
    DATE_INCONSISTENCY = 4
    OTHERS = 5.
    DESCRIBE TABLE IT_HOLIDAYS LINES CNT.
    X_DATE = T_DATE - P_DATE - CNT.
    RESULT = X_DATE.
    Please help
    Regards
    Zabina
    Edited by: Syed786 on Nov 2, 2011 9:15 AM

    Hi Zabina,
    Try this function module  'DURATION_DETERMINE'.
    Give the factory calendar and unit as DAY
    With regards,
    Rajesh

Maybe you are looking for

  • Importing packages at the same level

    Hi, I have two packages A at B (with some classes) in the same level. How do i import the classes from one packages to other.......

  • Changes interface to Pension

    Hi All I have to generate a report which, shows the record which have been changed within a given period of time in HR. does any body has idea how can I do this. Kind regards AJ

  • Geography fields in SQL Server 2012

    I have SQL Server 2012 running in 2012 mode. I run IIS 7.5 on Windows Server 2008. I use ASP.NET and after the login form, I issue a SQL select command which include the selection of a Geography field in the result. In order to make that work, I have

  • Editing iPhotos in Aperture

    I've had Aperture 3 for a week now, and I'm pretty well up to speed on the features. Three things are still puzzling me: 1) Is there a way to share Aperture photos with another Mac on my home network? This was easy in iPhoto, but I don't see the capa

  • Adobe AIR HTTP1.1 Streaming issue

    I have an Adobe AIR application that connects with a java server using AMF Streaming connection(mx.messaging.channels.StreamingAMFChannel) in BlazeDS. The web server used is jboss6.1.0. When I connect to the server from my 64bit Windows 7 PC, the Ado