0% found this document useful (0 votes)
616 views5 pages

Ytd N MTD

This document describes how to create year-to-date, quarter-to-date, and month-to-date objects in Designer 5.1 using database functions. It provides an example of creating a sales revenue year-to-date object for an Island Resorts Marketing universe using Transact-SQL functions. It also describes how to make the calculation more generic by prompting the user to select the time period when running the report.

Uploaded by

jagadish_val
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
616 views5 pages

Ytd N MTD

This document describes how to create year-to-date, quarter-to-date, and month-to-date objects in Designer 5.1 using database functions. It provides an example of creating a sales revenue year-to-date object for an Island Resorts Marketing universe using Transact-SQL functions. It also describes how to make the calculation more generic by prompting the user to select the time period when running the report.

Uploaded by

jagadish_val
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Designer 5.

Creating Year-, Quarter-, and Month-to-Date Objects Using Database Functions

You can use the date functions of the DBMS on which your universe is based to create
year-, quarter-, and month-to-date objects, thus simplifying these calculations for your end
users. The following example uses Transact-SQL, the SQL dialect in Sybase and
Microsoft SQL Server. Other DBMSs have equivalent date functions.

Creating a Sales Revenue Year-to-Date object in the Island Resorts Marketing


Universe

To create a Sales Revenue Year to Date object, do the following:


1. Right-click the Measures folder and choose Create Object from the pop-up menu.
The Edit Properties of Object dialog box appears.

2. Type ‘Sales Revenue YTD’ in the Name and Description boxes.


3. Select the Properties tab and select Measure as the object type.

4. Select the Definition tab.


5. Type
SUM(Invoice_Line.Days * Invoice_Line.nb_guests * Service.price)
in the Select Box.
(In order to calculate revenue for an invoice you need to take account of both the num-
ber of days paid for and the number of guests who bought the service. You then multi-
ply these numbers by the service price to give the total revenue represented by the
invoice. For example, if two guests stay for two days in a hotel suite, you have sold
four ‘units’ of the service ‘Hotel Suite’. Summing all these revenues gives the total rev-
enue.)
6. Type
DATEPART (Year, Sales.invoice_date) = DATEPART (Year, GETDATE())
7. in the Where box.

8. Click OK.
The object appears beneath the Measures folder.

The key to this object lies in the WHERE clause that you added to its definition. This
clause exploits the Transact-SQL DATEPART and GETDATE functions. DATEPART
returns any part of a date (in this case the year) and GETDATE returns the current date.
Thus, by comparing the year of the invoice to the current year you can sum all invoice
amounts for the current year.
Using the Year-to-Date Object in a Report

It is now simple to create a report showing Sales Revenue YTD. To create a report show-
ing revenue YTD by resort, simply drag the Resort and Sales Revenue YTD objects to the
Result Objects pane.

Running the report produces the following table:

Note: The Island Resorts Marketing universe does not contain invoices for the current
year. In order to generate this report the system year was set to 1994.

Creating a Generic Revenue-to-Date Object

You can make revenue-to-date calculation more generic by allowing the user to choose
the time period when they run the report. To do this, follow the instructions above to create
an object called ‘Revenue to Date’ and type the following in the Where box in the Edit
Properties of Object dialog box:
DATEPART (@Prompt('Choose a Time Period','N',{'Year','Quar-
ter','Month'},'mono','constrain'), Sales.Invoice_Date) = DATEPART (@Vari-
able('Choose a Time Period'), GetDate())
AND Datepart (Year, Sales.Invoice_Date) = DATEPART (Year, GetDate())
Now, when the user runs a report that contains the Revenue to Date object, they are
prompted to choose the time period:

Assuming that the user selects ‘Quarter’ from the list, the generated WHERE clause con-
tains the lines:
DATEPART (Quarter, Sales.Invoice_Date) = DATEPART (Quarter, GetDate())
AND Datepart (Year, Sales.Invoice_Date) = DATEPART (Year, GetDate())
This generic object exploits Designer’s @Prompt and @Variable functions. The @Prompt
function prompts the user for the time period, and the @Variable function retrieves the
user’s choice. In this way, the user’s choice is fed into the DATEPART function twice.

You might also like