Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Build Fiscal year while loading from a QVD

HI guys,

I am loading data from a qvd and I have a date field in there.

how can I build a Fiscal year that starts on July?

I used to do that in SQL in the script using the follwoing method:

CASE

    WHEN Month(P.DATE) = 1 THEN YEAR(P.DATE)

    WHEN Month(P.DATE) = 2 THEN YEAR(P.DATE)

    WHEN Month(P.DATE) = 3 THEN YEAR(P.DATE)

    WHEN Month(P.DATE) = 4 THEN YEAR(P.DATE)

    WHEN Month(P.DATE) = 5 THEN YEAR(P.DATE)

    WHEN Month(P.DATE) = 6 THEN YEAR(P.DATE)

    WHEN Month(P.DATE) = 7 THEN YEAR(P.DATE)+1

    WHEN Month(P.DATE) = 8 THEN YEAR(P.DATE)+1

    WHEN Month(P.DATE) = 9 THEN YEAR(P.DATE)+1

    WHEN Month(P.DATE) = 10 THEN YEAR(P.DATE)+1

    WHEN Month(P.DATE) = 11 THEN YEAR(P.DATE)+1

    WHEN Month(P.DATE) = 12 THEN YEAR(P.DATE)+1

ELSE

    YEAR(P.DATE)

END AS SALESYEAR

Now I have no idea how to do it while loading from a QVD

Wish you can help!

Thxs,

Labels (1)
1 Solution

Accepted Solutions
v_iyyappan
Specialist
Specialist

Hi,

     use the code in script like this

Load

     *,   

    If((Month(Date)*1=1),Year(Date),

        If((Month(Date)*1=2),Year(Date),

            If((Month(Date)*1=3),Year(Date),

                If((Month(Date)*1=4),Year(Date),

                    If((Month(Date)*1=5),Year(Date),

                        If((Month(Date)*1=6),Year(Date),

                            If((Month(Date)*1=7),Year(Date)+1,

                                If((Month(Date)*1=8),Year(Date)+1,

                                    If((Month(Date)*1=9),Year(Date)+1,

                                        If((Month(Date)*1=10),Year(Date)+1,

                                            If((Month(Date)*1=11),Year(Date)+1,

                                                If((Month(Date)*1=12),Year(Date)+1,Year(Date))))))))))))) AS SALESYEAR

From DataSource;

Where  Date = P.DATE

Regards,

Iyyappan

View solution in original post

8 Replies
jagannalla
Partner - Specialist III
Partner - Specialist III

Hello,

Load *,

If(Month(DateField)*1=7,Year(DateField)) as JulyMnthYr

from

table.qvd;

Hope it helps you.

Not applicable
Author

Hmm!..

I dont think that would help.

What I am looking for it build the fY Year in a simillar manar to what I have on the SQl query above.

WHEN Month(P.DATE) = 1 THEN YEAR(P.DATE)

    WHEN Month(P.DATE) = 2 THEN YEAR(P.DATE)

    WHEN Month(P.DATE) = 3 THEN YEAR(P.DATE)

    WHEN Month(P.DATE) = 4 THEN YEAR(P.DATE)

    WHEN Month(P.DATE) = 5 THEN YEAR(P.DATE)

    WHEN Month(P.DATE) = 6 THEN YEAR(P.DATE)

    WHEN Month(P.DATE) = 7 THEN YEAR(P.DATE)+1

    WHEN Month(P.DATE) = 8 THEN YEAR(P.DATE)+1

    WHEN Month(P.DATE) = 9 THEN YEAR(P.DATE)+1

    WHEN Month(P.DATE) = 10 THEN YEAR(P.DATE)+1

    WHEN Month(P.DATE) = 11 THEN YEAR(P.DATE)+1

    WHEN Month(P.DATE) = 12 THEN YEAR(P.DATE)+1

Thxs

jagannalla
Partner - Specialist III
Partner - Specialist III

u r implementing the logic to get year for particualar months. But what you want i didn't get. Can you explain little bit with example.

I mean wt is the input of ur qvd file and wt is the output u want.

Not applicable
Author

On this example

WHEN Month(P.DATE) = 1 THEN YEAR(P.DATE)   //returns Current Year

    WHEN Month(P.DATE) = 2 THEN YEAR(P.DATE) //return Current Year

    WHEN Month(P.DATE) = 3 THEN YEAR(P.DATE) //return Current Year

    WHEN Month(P.DATE) = 4 THEN YEAR(P.DATE) //return Current Year

    WHEN Month(P.DATE) = 5 THEN YEAR(P.DATE) // return Current Year

    WHEN Month(P.DATE) = 6 THEN YEAR(P.DATE) //return Current Year

    WHEN Month(P.DATE) = 7 THEN YEAR(P.DATE)+1  //return Next Year

    WHEN Month(P.DATE) = 8 THEN YEAR(P.DATE)+1  //return Next Year

    WHEN Month(P.DATE) = 9 THEN YEAR(P.DATE)+1   //return Next Year

    WHEN Month(P.DATE) = 10 THEN YEAR(P.DATE)+1  //Next 2012

    WHEN Month(P.DATE) = 11 THEN YEAR(P.DATE)+1  //Next 2012

    WHEN Month(P.DATE) = 12 THEN YEAR(P.DATE)+1  //Next 2012

so that will make the Year start on July

On your example 

If(Month(DateField)*1=7,Year(DateField)) as JulyMnthYr

How can I add Else IF ?

Thxs for your help

v_iyyappan
Specialist
Specialist

Hi,

     use the code in script like this

Load

     *,   

    If((Month(Date)*1=1),Year(Date),

        If((Month(Date)*1=2),Year(Date),

            If((Month(Date)*1=3),Year(Date),

                If((Month(Date)*1=4),Year(Date),

                    If((Month(Date)*1=5),Year(Date),

                        If((Month(Date)*1=6),Year(Date),

                            If((Month(Date)*1=7),Year(Date)+1,

                                If((Month(Date)*1=8),Year(Date)+1,

                                    If((Month(Date)*1=9),Year(Date)+1,

                                        If((Month(Date)*1=10),Year(Date)+1,

                                            If((Month(Date)*1=11),Year(Date)+1,

                                                If((Month(Date)*1=12),Year(Date)+1,Year(Date))))))))))))) AS SALESYEAR

From DataSource;

Where  Date = P.DATE

Regards,

Iyyappan

Not applicable
Author

Thxs! this worked perfect!

jagan
Partner - Champion III
Partner - Champion III

Hi,

Fine tuned script.

Table3:

Load

    Month(Date) AS Month,

    If(Month(Date) > 6, Year(Date) +1, Year(Date)) AS YearMonth

Resident Table2;

Regards,

Jagan.

CELAMBARASAN
Partner - Champion
Partner - Champion

Hi,

     Check with this

    

Load

    Month(Date) AS Month,

   Year(AddMonths(Date,6)) AS SalesYear

Resident Table2;

Celambarasan