Solved

Crystal Report 11 -- Cross Tab format and SQL connect by function

Posted on 2010-11-16
2
780 Views
Last Modified: 2012-05-10
I have a cross-tab with 24 months of data. (Please see the attached file). But sometimes the SQL doesn't return 24 months of data, because there is no data for those months. In our example the Sep 2010 and Oct 2010 (201009 & 201010) doesnt have data. But I want those columns in the report with just 0s as shown in the attachment. i tried using the following SQL, but still not able to acheive the one I want.

The ?DATE_ENTERED is a parameter. If for example today's date is given (11-16-2010), I have a formula[maximum(LastFullMonth)] which makes the date to previous months last date (10-31-2010). So the date range would be from oct 2010 and goes back 24 months nov 2008.
I tried playing with the connect by level number sometimes it goes backward or forward not the right one.
When I run just the second part of the union all, I get the desired result ie., from 11/01/2008 thru 10/01/2010, but when I use it together its not giving the desired result, maybe I dont understand that function fully.

select 
trunc(s_date, 'MM') as SDATE,
trunc(s_date, 'MM') as SDATE,
SALARY

FROM TABLE_A,
TABLE_B
.....
WHERE
.....
s_date BETWEEN TRUNC(ADD_MONTHS(TRUNC({?DATE_ENTERED},'MM'),-23))  AND {?DATE_ENTERED}
p_date BETWEEN TRUNC(ADD_MONTHS(TRUNC({?DATE_ENTERED},'MM'),-23))  AND {?DATE_ENTERED}

UNION ALL

-- This is to get those months which aren't returned
SELECT 
     trunc({?DATE_ENTERED}, 'mm') + INTERVAL '-1' MONTH * ROWNUM SDATE,
     trunc({?DATE_ENTERED}, 'mm') + INTERVAL '-1' MONTH * ROWNUM PDATE,
    0 AS salary

FROM dual 

CONNECT BY LEVEL <=24

Open in new window


My next question is, can we change the label of the summary row, that is, GRAND TOTAL instead of just TOTAL. I have highlighted in red in the attachment.

Thoughts?

Thanks!
CROSS-TAB-FORMAT.xls
0
Comment
Question by:D-pk
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 14

Accepted Solution

by:
LinInDenver earned 500 total points
ID: 34150582
I have done something similar in Crystal - using connect by level, to return all possible dates...

This is basically what I did, and replaced the start (3/1/2008) and end (3/31/2010) with 2 crystal date parameters... I'm sure you can accomplish something similar by using just a single date param.

      select
        trunc(to_date('01-MAR-2008'))-1 + level as cal_date
        from dual
        where (to_date('01-MAR-2008')-1+level) <= to_date('31-mar-2010')
        connect by level<=100000


      select distinct
      {?beginofrange}-1 + level
      from dual
      where ({?beginofrange}-1+level) <= trunc({?endofrange})
      connect by level<=1000


Regarding changing labels, Yes - just select to highlight the field in the cross tab, and his F2 to edit the text.
0
 

Author Closing Comment

by:D-pk
ID: 34168716
Thanks LinInDenver!
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Confronted with some SQL you don't know can be a daunting task. It can be even more daunting if that SQL carries some of the old secret codes used in the Ye Olde query syntax, such as: (+)     as used in Oracle;     *=     =*    as used in Sybase …
This post first appeared at Oracleinaction  (http://oracleinaction.com/undo-and-redo-in-oracle/)by Anju Garg (Myself). I  will demonstrate that undo for DML’s is stored both in undo tablespace and online redo logs. Then, we will analyze the reaso…
This video shows information on the Oracle Data Dictionary, starting with the Oracle documentation, explaining the different types of Data Dictionary views available by group and permissions as well as giving examples on how to retrieve data from th…
This video shows how to recover a database from a user managed backup

735 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question