Add zeros to a matrix report
I'm making a matrix report and the users want to have zeros show where is no data returned. Since there are no fields I can't set the null values to zero. I used the example in the building reports pdf but it covers up the fields that returns numbers. Then I noticed the example bascially just adds the zeros to the end since they are using currency. Is there a way to have a label moveforward only when you want it, or is there another way that I'm missing.
OK â I can now see that I wasnât clear enough in my first reply. I have modified your SQL statement (hopefully without syntax errors :-) The job was to get all possible/necessary combinations of EVENT and SEVERITY out of sub query SUBALLROWS (i.e. I only changed sub query SUBALLROWS):
[All my indentions are gone when I Post the Message, so it looks horrible.]
SELECT suballrows.event,
suballrows.severity,
DECODE(suballrows.severity,'R',1,'A',2,'G',3) AS SEVERITYSORT,
nvl(count(subnew.severity),0) as SEVERITYTOTAL
FROM (SELECT severity,
event
FROM vw_merger_drill_issue
WHERE bau_merger = '1'
AND trunc(current_date-submitdate)<7
)subnew,
(SELECT event, -- Cartesian product of event and severity
severity
FROM (SELECT DISTINCT event
FROM vw_merger_drill_issue
WHERE event IS NOT NULL
) subevent,
(SELECT DISTINCT severity
FROM vw_merger_drill_issue
WHERE severity IS NOT NULL
) subseverity
) suballrows
WHERE suballrows.event = subnew.event (+)
AND suballrows.severity = subnew.severity (+)
GROUP BY suballrows.event,
suballrows.severity
ORDER BY Suballrows.Event,
severitysort;
Because you more or less execute the same SELECT 3 times, you might get a performance gain by the use of the WITH clause.
My previously used detail table SALES (the same as your vw_merger_drill_issue view) contains:
SELECT *
FROM sales;
MO REGION AMOUNT
01 EUROPE 100
02 EUROPE 50
02 AMERICA 200
03 AMERICA 150
The With clause SQL looks like (and returns every month and region):
WITH
subsales AS
(SELECT month, region, sum( amount) amount
FROM sales
GROUP BY month, region
SELECT suballrows.month,
suballrows.region,
nvl( subsales.amount, 0) amount
FROM subsales,
(SELECT month, region -- Cartesian product with all possible combinations.
FROM (SELECT DISTINCT region
FROM subsales
) subregion,
(SELECT DISTINCT month
FROM subsales
) submonth
) suballrows
WHERE suballrows.month = subsales.month (+)
AND suballrows.region = subsales.region (+)
ORDER BY suballrows.month,
suballrows.region;
MO REGION AMOUNT
01 AMERICA 0
01 EUROPE 100
02 AMERICA 200
02 EUROPE 50
03 AMERICA 150
03 EUROPE 0
What your SQL would look like ... something like below. You may decide if it looks OK:
WITH
sub_merger_drill_issue AS
(SELECT event,
severity,
count(*) severity_subtotal
FROM vw_merger_drill_issue
WHERE bau_merger = '1'
AND trunc(current_date-submitdate)<7
AND event IS NOT NULL
AND severity IS NOT NULL
SELECT suballrows.event,
suballrows.severity,
DECODE(suballrows.severity,'R',1,'A',2,'G',3) AS SEVERITYSORT,
nvl(SUM(subnew.severity),0) as SEVERITYTOTAL -- count changed to sum because of sub total count in sub_merger_drill_issue.
FROM sub_merger_drill_issue subnew,
(SELECT event, -- Cartesian product of event and severity
severity
FROM (SELECT DISTINCT event
FROM sub_merger_drill_issue
) subevent,
(SELECT DISTINCT severity
FROM sub_merger_drill_issue
) subseverity
) suballrows
WHERE suballrows.event = subnew.event (+)
AND suballrows.severity = subnew.severity (+)
GROUP BY suballrows.event,
suballrows.severity
ORDER BY Suballrows.Event,
severitysort;
Similar Messages
-
How to add a function field into the existing matrix report
Hi,
I have a matrix report , now i wanted to add one moe field into the matrix which is getting the value from a function , this function is a part of the ref cursor query(group) , i'm able to get the value from the function but it cannot display on the existing matrix report. i wanted to add this in the repeating frame which is printing down. how could i do this , looking for your help. thanks . bcjHere the scenario like,
Data from Table_1
NAME UNITS DAYS RATE
AAA 10 1 1.2
BBB 12 2 3.1
AAA 20 2 4.1
CCC 23 1 5.2
Here, In the matrix report the NAME and UNITS are row fields and 'DAYS' is column field , RATE would be the cell field, and
Data from Table_2 ,
NAME BASIC
AAA 2
AAA 2
BBB 2
CCC 3
In the report i have to display the 'BASIC' along with the NAME in row level ( repeating frame printing down),
To get the multiple 'Basic' for each 'Name' using a ref cursor .
and, using a function to do further calculation based on the basic value
begin
select basic into v_basic where name =:name;
return(caluculated_value);
end;
and return the calculated value to the report. But at that time cannot accommodate the value in the matrix report with other groups frequency.
looking for your valuable help. Thanks Bcj -
Hello ,
I created a matrix report , Outer join is using in query ,so couldn't fill "0" to blank ammount column , please help me
Query is :-
SELECT
nvl(AAMT,0) AAMT,
nvl(AHRS,0) AHRS,
JOBNUM JOBNO,
B.USERCCM,
B.CCMNAME
FROM
(SELECT SUM(ACTAMT) AAMT,
SUM(ACTHRS) AHRS,
JOBNUM,
CCM,
DEPTCODE FROM
(SELECT SUM( ACTAMT) ACTAMT,
SUM(ACTHRS) ACTHRS,
JOBNUM,
CCM,
DEPTCODE
FROM CSBUDTIM
WHERE DEPTCODE=:DEPTCOD AND
JOBNUM BETWEEN :JOBNUM AND :JOBNUM1 AND
TRDATE BETWEEN :FROMDATE AND :TODATE
GROUP BY JOBNUM,CCM,DEPTCODE
UNION ALL
SELECT SUM( ACTAMT) ACTAMT,
SUM(ACTHRS) ACTHRS,
JOBNUM,
CCM,
DEPTCODE
FROM CSBUDETM
WHERE DEPTCODE=:DEPTCOD AND
JOBNUM BETWEEN :JOBNUM AND :JOBNUM1 AND
TRDATE BETWEEN :FROMDATE AND :TODATE
GROUP BY JOBNUM,CCM,DEPTCODE
UNION ALL
SELECT SUM(ACTAMT) ACTAMT,
0 ACTHRS,
JOBNUM,
NVL(CCM,'DM') CCM,
DEPTCODE
FROM CSBUDMAT
WHERE DEPTCODE=:DEPTCOD AND
JOBNUM BETWEEN :JOBNUM AND :JOBNUM1 AND
TRDATE BETWEEN :FROMDATE AND :TODATE
GROUP BY JOBNUM,CCM,DEPTCODE)
GROUP BY JOBNUM,CCM,DEPTCODE) A ,
CSPGMCCM B
WHERE B.DEPTCODE = A.DEPTCODE(+) AND
B.USERCCM = A.CCM(+) and
B.DEPTCODE = :DEPTCOD
ORDER BY A.JOBNUM,B.USERCCM
--------------------------------------------------------------------------------Hay Thahir,
Can u plz tell me the solution -
How to calculate difference and percentage in matrix report dynamic columns in SSRS 2008
Hi Friends,
I need to calculate Difference and Percentage In matrix report SSRS 2008
1) Row grouping based On Product
2) Column Grouping Week and Fiscal Year Current week and Previous Year same Weeks
3)Data Invnetory(Value fileld)
Example:
If value1 and Value2 Available we need to calculate Percentage and Difference.Otherwise Not required NA I need to Show.
For example If Particular week,Current year data is available,Previous year week data is not available No
need to cal Diff and Percentage we need to show Empty.
Below Code is working for If two values is available.
If any one of the fiscal year week data is not there it's taking some garbage values.
I tries with If condition in GetPCT() and GetDiff() It's not working.
Can some one please help me on this.
I am using the custom code
Public Shared Value1 as String
Public Shared Value2 as String
Public Shared previous as string
Public Shared previousweek as string
Public Shared Function GetValue(Value as String,partner as String,Week as String) as String
If partner =previous and Week =previousweek Then
Value2=Value
Else
previous=partner
previousweek=Week
Value1=Value
End If
return Value
End Function
Public Shared Function GetDiff()
return Value2-Value1
End Function
Public Shared Function GetPct()
return (Value2-Value1)/Value1
End Function
How to handle this.
Thank You, Manasa.VHi veerapaneni,
According to your description, if one of the fiscal year week doesn’t have data, the custom code returns false results.
For your requirement, if NULL value exists in the database, we should replace it as zero then perform calculate. So within the code, we should judge whether the value is NULL. To achieve your goal, please refer to the steps below:
1. Create a table like below.
create table dif4
([Product Group] varchar(50),
[Week] varchar(50),
[Fiscalyearweek] varchar(50),
value int
insert into dif4 values
('Desktops','W01','FY14W01',0),
('Desktops','W01','FY15W01',45),
('Desktops','W02','FY14W02',null),
('Desktops','W02','FY15W02',30),
('Desktops','W03','FY14W03',12),
('Desktops','W03','FY15W03',50),
('Notebooks','W01','FY14W01',35),
('Notebooks','W01','FY15W01',56),
('Notebooks','W02','FY14W02',45),
('Notebooks','W02','FY15W02',87),
('Notebooks','W03','FY14W03',75),
('Notebooks','W03','FY15W03',105),
('Tablets','W01','FY14W01',34),
('Tablets','W01','FY15W01',46),
('Tablets','W02','FY14W02',49),
('Tablets','W02','FY15W02',96),
('Tablets','W03','FY14W03',42),
('Tablets','W03','FY15W03',113)
2. Add the custom code in the Report Properties.
Public Shared Value1 as Integer
Public Shared Value2 as Integer
Public Shared previous as string
Public Shared previousweek as string
Public Shared Function GetValue(Value as Integer,product as String,Week as String) as Integer
If Value=Nothing Then
Value=0
End If
If product =previous and Week =previousweek Then
Value2=Value
Else
previous=product
previousweek=Week
Value1=Value
End If
return Value
End Function
Public Shared Function GetPct()
If Value1=0 Then
return 0
Else
return (Value2-Value1)/Value1
End If
End Function
Public Shared Function GetDiff()
return Value2-Value1
End Function
3. Design the matrix like below.
4. Then get the expected results.<o:p></o:p>
If you have any question, please feel free to ask.
Best regards,
Qiuyun Yu
Qiuyun Yu
TechNet Community Support -
Matrix report with group.
dear all,
can anyone guide me how to build a matrix report with group using scott schema.
i can not be able to build a query.
Thanks
Muhammad NadeemThe example given by Oracle (from the above link) using the following SQL for a matrix report is flawed.
SELECT DEPTNO, JOB, SUM(SAL)
FROM EMP
GROUP BY DEPTNO, JOB
ORDER BY DEPTNO, JOB
The SUM function handled by the query restricts you from doing so many things - especially when you want the empty fields to be filled by 0 (by using the Value if Null property).
If the query is changed to ''SELECT DEPTNO, JOB, SAL FROM EMP' , and use the SUM function in the wizard to build the Matrix cell, then the 'Value if Null' property can be used without any issues.
This also makes Section 25.6 (Add zeroes in place of blanks) of the documentation a joke.
Anyway, that's my cents worth.... -
Group matrix report with an hierarchy table???
Hello,
I have a big trouble making up a report involving many tables and one of them having a many-to-many recursive relationship. The user has a defined request in having the information grouped.I'll give some more details. I would like to know if you have any ideas in how to structure the report..
Here are the tables:
ORG
(org_id not null,
org_name not null)
DNR
(dnr_id not null,
org_id not null,
dnr_age,
dnr_gender)
CS
(cs_id not null,
dnr_id not null)
Smpl
(smpl_id not null,
dnr_id notnull,
org_id,
smpl_tp not null,
cs_id,
meth,
notes)
Tr_map
(tr_id not null,
smpl_prnt not null,
smpl_chld,
pos)
Some data..
Smpl_id Dnr_id Org_id Smpl_tp Cs_id Meth Notes
107 101 137 tss a xxxx
118 112 137 tss ab xxxx
122 108 25 tss 3768 a xxxx
123 108 25 tss 3768 ab xxxx
124 108 25 blk c yyyy
125 108 25 sld d zzzz
126 108 25 blk c yyyy
tr_id Smpl_prnt Smpl_chld Pos
1 107
2 118
3 122
4 123
5 124 122 1
7 125 124 1
8 126 122 1
10 125 126 2
The user wants the data reported as follows:
Org name
Dnr_id, dnr_age etc...
Cs_id
Smpl_id, Smpl_tp (tss), Meth, Notes
Smpl_id,smpl_tp(blk), Meth, Notes ...
Smpl_id, smpl_tp(sld), Meth, Notes...
Cs_id
Smpl_id, Smpl_tp (tss), Meth, Notes
Smpl_id, smpl_tp(blk), Meth,Notes...
Smpl_id, smpl_tp(sld), Meth, Notes...
I think the grouped matrix would be the solution but I don't know how to do that with the hierarchy table to show the children and grandchildren as subgroups. Is that possible in a single query? How can I build a group matrix with multiple subgroups?
Thanks in advance.
simona
nullThe example given by Oracle (from the above link) using the following SQL for a matrix report is flawed.
SELECT DEPTNO, JOB, SUM(SAL)
FROM EMP
GROUP BY DEPTNO, JOB
ORDER BY DEPTNO, JOB
The SUM function handled by the query restricts you from doing so many things - especially when you want the empty fields to be filled by 0 (by using the Value if Null property).
If the query is changed to ''SELECT DEPTNO, JOB, SAL FROM EMP' , and use the SUM function in the wizard to build the Matrix cell, then the 'Value if Null' property can be used without any issues.
This also makes Section 25.6 (Add zeroes in place of blanks) of the documentation a joke.
Anyway, that's my cents worth.... -
Matrix report with dynamic and fixed columns
Hi all,
I have a matrix report which has dynamic as well as few fixed columns.
It is a fixed asset Report in which the sum(cost) in cell should be grouped according to column and row-wise.
The row consists of the activity such as additions, retirements etc and the dynamic column is the category and other fixed columns such as CIP cost, CWIP cost will be grouped only according to row.
the actual layout should be like this
| category 1 | category 2 | category 3 ...... | CIP cost | CWIP cost
Additions | Sum(cost) | Sum(cost) | Sum(cost) .......| 1234 | 4500
retirements | Sum(cost) | Sum(cost) | Sum(cost) .......| 1000 | 2500but due to fixed colums in the layout the report builder pushes the fixed colums to the next row with single query i get
| category 1 | category 2 | category 3 ...... |
Additions | Sum(cost) | Sum(cost) | Sum(cost) .......|
CIP cost | CWIP cost
1234 | 4500
retirements | Sum(cost) | Sum(cost) | Sum(cost) .......|
CIP cost | CWIP cost
1000 | 2500if i try to add those columns alone in a seperate query and then build the report i get the layout like this
| category 1 | category 2 | category 3 ...... |
Additions | Sum(cost) | Sum(cost) | Sum(cost) .......|
retirements | Sum(cost) | Sum(cost) | Sum(cost) .......|
CIP cost | CWIP cost
2234 | 7000This is my query, i have used union to get the row-wise column activity
/* Formatted on 03-Sep-12 5:23:11 PM (QP5 v5.114.809.3010) */
SELECT DISTINCT /*ASSET_ID
SUM (cost),
SUM (cip_cost),
SUM (cip_cost_pk),
cat_desc--,sub_cat_desc
,activity
FROM (-- cip cost
SELECT DISTINCT asset_id,
cost,
ytd_deprn,
deprn_amount,
deprn_reserve acc_deprn,
cost - deprn_reserve net_bk_val,
cip_cost,
cip_cost_pk,
description cat_desc,
fat_desc sub_cat_desc,
activity
FROM (SELECT DISTINCT
fb.asset_id,
fb.cost,
facc.cost cip_cost,
0 cip_cost_pk,
ds.ytd_deprn,
ds.deprn_reserve,
fc.description,
fat.description fat_desc,
ds.deprn_amount,
DECODE (
facc.asset_type
|| '-'
|| fc.segment1
|| '-'
|| di.transtype,
'CIP'
|| '-'
|| fc.segment1
|| '-'
|| 'TRANSFER',
'CIP T/F',
'CIP-0012-' || di.transtype,
'Additions Project Khalifa assets',
'CAPITALIZED-' || fc.segment1 || di.transtype,
'0',
'Additions'
activity
FROM fa_books fb,
fa_additions_b fa,
fa_methods fm,
fa_financial_inquiry_cost_v fic,
fa_categories_vl fc,
fa_capitalize_cip_v facc,
fa_additions_tl fat,
fa_deprn_summary ds,
fa_distribution_inquiry_v di
WHERE ds.asset_id = fa.asset_id
AND fb.asset_id = fa.asset_id
AND fb.asset_id = fic.asset_id
AND di.asset_id = fb.asset_id
AND fb.life_in_months = fm.life_in_months
AND fb.book_type_code = ds.book_type_code
AND fb.book_type_code = fic.book_type_code
AND fa.last_update_date >
TO_DATE (
'01'
|| 'JAN'
|| TO_CHAR (SYSDATE, 'RRRR'),
'DD-MON-RRRR'
AND ds.deprn_run_date =
(SELECT DISTINCT MAX (deprn_run_date)
FROM fa_deprn_summary
WHERE asset_id = fb.asset_id)
AND fic.transaction_header_id_in =
(SELECT DISTINCT
MAX (transaction_header_id_in)
FROM fa_financial_inquiry_cost_v
WHERE asset_id = fb.asset_id)
AND fb.date_effective =
(SELECT DISTINCT MAX (date_effective)
FROM fa_books
WHERE asset_id = fb.asset_id)
AND di.transaction_header_id =
(SELECT DISTINCT
MAX (transaction_header_id)
FROM fa_distribution_inquiry_v
WHERE asset_id = fb.asset_id)
AND fa.attribute_category_code =
fc.segment1 || '-' || fc.segment2
AND fc.segment1 <> '0012'
AND fb.asset_id = facc.asset_id
AND fa.asset_id = fat.asset_id
--AND facc.asset_type <> 'CAPITALIZED'
AND fb.deprn_method_code = fm.method_code
AND ds.deprn_source_code <> 'BOOKS'
AND DECODE (
facc.asset_type || '-' || fc.segment1,
'CIP-0012',
'Additions Project Khalifa assets',
'CAPITALIZED-' || fc.segment1,
'0',
'Additions'
) <> '0'/*ORDER BY fb.asset_id*/
UNION
--cip cost pk
SELECT DISTINCT asset_id,
cost,
ytd_deprn,
deprn_amount,
deprn_reserve acc_deprn,
cost - deprn_reserve net_bk_val,
cip_cost,
cip_cost_pk,
description cat_desc,
fat_desc sub_cat_desc,
activity
FROM (SELECT DISTINCT
fb.asset_id,
fb.cost,
0 cip_cost,
facc.cost cip_cost_pk,
ds.ytd_deprn,
ds.deprn_reserve,
fc.description,
fat.description fat_desc,
ds.deprn_amount,
DECODE (
facc.asset_type
|| '-'
|| fc.segment1
|| '-'
|| di.transtype,
'CIP'
|| '-'
|| fc.segment1
|| '-'
|| 'TRANSFER',
'CIP T/F',
'CIP-0012-' || di.transtype,
'Additions Project Khalifa assets',
'CAPITALIZED-' || fc.segment1 || di.transtype,
'0',
'Additions'
activity
FROM fa_books fb,
fa_additions_b fa,
fa_methods fm,
fa_financial_inquiry_cost_v fic,
fa_categories_vl fc,
fa_capitalize_cip_v facc,
fa_additions_tl fat,
fa_deprn_summary ds,
fa_distribution_inquiry_v di
WHERE ds.asset_id = fa.asset_id
AND fb.asset_id = fa.asset_id
AND fb.asset_id = fic.asset_id
AND di.asset_id = fb.asset_id
AND fb.life_in_months = fm.life_in_months
AND fb.book_type_code = ds.book_type_code
AND fb.book_type_code = fic.book_type_code
AND fa.last_update_date >
TO_DATE (
'01'
|| 'JAN'
|| TO_CHAR (SYSDATE, 'RRRR'),
'DD-MON-RRRR'
AND ds.deprn_run_date =
(SELECT DISTINCT MAX (deprn_run_date)
FROM fa_deprn_summary
WHERE asset_id = fb.asset_id)
AND fic.transaction_header_id_in =
(SELECT DISTINCT
MAX (transaction_header_id_in)
FROM fa_financial_inquiry_cost_v
WHERE asset_id = fb.asset_id)
AND fb.date_effective =
(SELECT DISTINCT MAX (date_effective)
FROM fa_books
WHERE asset_id = fb.asset_id)
AND di.transaction_header_id =
(SELECT DISTINCT
MAX (transaction_header_id)
FROM fa_distribution_inquiry_v
WHERE asset_id = fb.asset_id)
AND fa.attribute_category_code =
fc.segment1 || '-' || fc.segment2
AND fc.segment1 = '0012'
AND fb.asset_id = facc.asset_id
AND fa.asset_id = fat.asset_id
--AND facc.asset_type <> 'CAPITALIZED'
AND fb.deprn_method_code = fm.method_code
AND ds.deprn_source_code <> 'BOOKS'
AND DECODE (
facc.asset_type || '-' || fc.segment1,
'CIP-0012',
'Additions Project Khalifa assets',
'CAPITALIZED-' || fc.segment1,
'0',
'Additions'
) <> '0'/*ORDER BY fb.asset_id*/
UNION
-- Disposal / Transferred / Retired
( -- retired
SELECT DISTINCT asset_id,
cost,
ytd_deprn,
deprn_amount,
deprn_reserve acc_deprn,
cost - deprn_reserve net_bk_val,
cip_cost,
cip_cost_pk,
description cat_desc,
fat_desc sub_cat_desc,
activity
FROM (SELECT DISTINCT
fb.asset_id,
fb.cost,
0 cip_cost,
0 cip_cost_pk,
ds.ytd_deprn,
ds.deprn_reserve,
fc.description,
fat.description fat_desc,
ds.deprn_amount,
'Disposal / Transferred / Retired' activity
FROM fa_books fb,
fa_additions_b fa,
fa_methods fm,
fa_financial_inquiry_cost_v fic,
fa_categories_vl fc,
fa_additions_tl fat,
fa_deprn_summary ds,
fa_mass_ext_retirements_v ret
WHERE ds.asset_id = fa.asset_id
AND fb.asset_id = fa.asset_id
AND fb.asset_id = fic.asset_id
AND fb.life_in_months = fm.life_in_months
AND fb.book_type_code = ds.book_type_code
AND fb.book_type_code = fic.book_type_code
AND fa.last_update_date >
TO_DATE (
'01'
|| 'JAN'
|| TO_CHAR (SYSDATE, 'RRRR'),
'DD-MON-RRRR'
AND ds.deprn_run_date =
(SELECT DISTINCT MAX (deprn_run_date)
FROM fa_deprn_summary
WHERE asset_id = fb.asset_id)
AND fic.transaction_header_id_in =
(SELECT DISTINCT
MAX (transaction_header_id_in)
FROM fa_financial_inquiry_cost_v
WHERE asset_id = fb.asset_id)
AND fb.date_effective =
(SELECT DISTINCT MAX (date_effective)
FROM fa_books
WHERE asset_id = fb.asset_id)
AND fa.attribute_category_code =
fc.segment1 || '-' || fc.segment2
AND fb.asset_id = ret.asset_id
AND fa.asset_id = fat.asset_id
AND fb.deprn_method_code = fm.method_code
AND ds.deprn_source_code <> 'BOOKS'/*ORDER BY fb.asset_id*/
UNION
--transfer
SELECT DISTINCT asset_id,
cost,
ytd_deprn,
deprn_amount,
deprn_reserve acc_deprn,
cost - deprn_reserve net_bk_val,
cip_cost,
cip_cost_pk,
description cat_desc,
fat_desc sub_cat_desc,
activity
FROM (SELECT DISTINCT
fb.asset_id,
fb.cost,
facc.cost cip_cost,
0 cip_cost_pk,
ds.ytd_deprn,
ds.deprn_reserve,
fc.description,
fat.description fat_desc,
ds.deprn_amount,
'Disposal / Transferred / Retired' activity
FROM fa_books fb,
fa_additions_b fa,
fa_methods fm,
fa_financial_inquiry_cost_v fic,
fa_categories_vl fc,
fa_capitalize_cip_v facc,
fa_additions_tl fat,
fa_deprn_summary ds,
fa_distribution_inquiry_v di
WHERE ds.asset_id = fa.asset_id
AND fb.asset_id = fa.asset_id
AND fb.asset_id = fic.asset_id
AND di.asset_id = fb.asset_id
AND fb.life_in_months = fm.life_in_months
AND fb.book_type_code = ds.book_type_code
AND fb.book_type_code = fic.book_type_code
AND fa.last_update_date >
TO_DATE (
'01'
|| 'JAN'
|| TO_CHAR (SYSDATE, 'RRRR'),
'DD-MON-RRRR'
AND ds.deprn_run_date =
(SELECT DISTINCT MAX (deprn_run_date)
FROM fa_deprn_summary
WHERE asset_id = fb.asset_id)
AND fic.transaction_header_id_in =
(SELECT DISTINCT
MAX (transaction_header_id_in)
FROM fa_financial_inquiry_cost_v
WHERE asset_id = fb.asset_id)
AND fb.date_effective =
(SELECT DISTINCT MAX (date_effective)
FROM fa_books
WHERE asset_id = fb.asset_id)
AND di.transaction_header_id =
(SELECT DISTINCT
MAX (transaction_header_id)
FROM fa_distribution_inquiry_v
WHERE asset_id = fb.asset_id
AND transtype = 'TRANSFER')
AND fa.attribute_category_code =
fc.segment1 || '-' || fc.segment2
AND fb.asset_id = facc.asset_id
AND fa.asset_id = fat.asset_id
AND facc.asset_type = 'CAPITALIZED'
AND fb.deprn_method_code = fm.method_code
AND ds.deprn_source_code <> 'BOOKS'/*ORDER BY fb.asset_id*/
GROUP BY cat_desc, activity
ORDER BY activityBrgds,
MaxHi all,
I have a matrix report which has dynamic as well as few fixed columns.
It is a fixed asset Report in which the sum(cost) in cell should be grouped according to column and row-wise.
The row consists of the activity such as additions, retirements etc and the dynamic column is the category and other fixed columns such as CIP cost, CWIP cost will be grouped only according to row.
the actual layout should be like this
| category 1 | category 2 | category 3 ...... | CIP cost | CWIP cost
Additions | Sum(cost) | Sum(cost) | Sum(cost) .......| 1234 | 4500
retirements | Sum(cost) | Sum(cost) | Sum(cost) .......| 1000 | 2500but due to fixed colums in the layout the report builder pushes the fixed colums to the next row with single query i get
| category 1 | category 2 | category 3 ...... |
Additions | Sum(cost) | Sum(cost) | Sum(cost) .......|
CIP cost | CWIP cost
1234 | 4500
retirements | Sum(cost) | Sum(cost) | Sum(cost) .......|
CIP cost | CWIP cost
1000 | 2500if i try to add those columns alone in a seperate query and then build the report i get the layout like this
| category 1 | category 2 | category 3 ...... |
Additions | Sum(cost) | Sum(cost) | Sum(cost) .......|
retirements | Sum(cost) | Sum(cost) | Sum(cost) .......|
CIP cost | CWIP cost
2234 | 7000This is my query, i have used union to get the row-wise column activity
/* Formatted on 03-Sep-12 5:23:11 PM (QP5 v5.114.809.3010) */
SELECT DISTINCT /*ASSET_ID
SUM (cost),
SUM (cip_cost),
SUM (cip_cost_pk),
cat_desc--,sub_cat_desc
,activity
FROM (-- cip cost
SELECT DISTINCT asset_id,
cost,
ytd_deprn,
deprn_amount,
deprn_reserve acc_deprn,
cost - deprn_reserve net_bk_val,
cip_cost,
cip_cost_pk,
description cat_desc,
fat_desc sub_cat_desc,
activity
FROM (SELECT DISTINCT
fb.asset_id,
fb.cost,
facc.cost cip_cost,
0 cip_cost_pk,
ds.ytd_deprn,
ds.deprn_reserve,
fc.description,
fat.description fat_desc,
ds.deprn_amount,
DECODE (
facc.asset_type
|| '-'
|| fc.segment1
|| '-'
|| di.transtype,
'CIP'
|| '-'
|| fc.segment1
|| '-'
|| 'TRANSFER',
'CIP T/F',
'CIP-0012-' || di.transtype,
'Additions Project Khalifa assets',
'CAPITALIZED-' || fc.segment1 || di.transtype,
'0',
'Additions'
activity
FROM fa_books fb,
fa_additions_b fa,
fa_methods fm,
fa_financial_inquiry_cost_v fic,
fa_categories_vl fc,
fa_capitalize_cip_v facc,
fa_additions_tl fat,
fa_deprn_summary ds,
fa_distribution_inquiry_v di
WHERE ds.asset_id = fa.asset_id
AND fb.asset_id = fa.asset_id
AND fb.asset_id = fic.asset_id
AND di.asset_id = fb.asset_id
AND fb.life_in_months = fm.life_in_months
AND fb.book_type_code = ds.book_type_code
AND fb.book_type_code = fic.book_type_code
AND fa.last_update_date >
TO_DATE (
'01'
|| 'JAN'
|| TO_CHAR (SYSDATE, 'RRRR'),
'DD-MON-RRRR'
AND ds.deprn_run_date =
(SELECT DISTINCT MAX (deprn_run_date)
FROM fa_deprn_summary
WHERE asset_id = fb.asset_id)
AND fic.transaction_header_id_in =
(SELECT DISTINCT
MAX (transaction_header_id_in)
FROM fa_financial_inquiry_cost_v
WHERE asset_id = fb.asset_id)
AND fb.date_effective =
(SELECT DISTINCT MAX (date_effective)
FROM fa_books
WHERE asset_id = fb.asset_id)
AND di.transaction_header_id =
(SELECT DISTINCT
MAX (transaction_header_id)
FROM fa_distribution_inquiry_v
WHERE asset_id = fb.asset_id)
AND fa.attribute_category_code =
fc.segment1 || '-' || fc.segment2
AND fc.segment1 <> '0012'
AND fb.asset_id = facc.asset_id
AND fa.asset_id = fat.asset_id
--AND facc.asset_type <> 'CAPITALIZED'
AND fb.deprn_method_code = fm.method_code
AND ds.deprn_source_code <> 'BOOKS'
AND DECODE (
facc.asset_type || '-' || fc.segment1,
'CIP-0012',
'Additions Project Khalifa assets',
'CAPITALIZED-' || fc.segment1,
'0',
'Additions'
) <> '0'/*ORDER BY fb.asset_id*/
UNION
--cip cost pk
SELECT DISTINCT asset_id,
cost,
ytd_deprn,
deprn_amount,
deprn_reserve acc_deprn,
cost - deprn_reserve net_bk_val,
cip_cost,
cip_cost_pk,
description cat_desc,
fat_desc sub_cat_desc,
activity
FROM (SELECT DISTINCT
fb.asset_id,
fb.cost,
0 cip_cost,
facc.cost cip_cost_pk,
ds.ytd_deprn,
ds.deprn_reserve,
fc.description,
fat.description fat_desc,
ds.deprn_amount,
DECODE (
facc.asset_type
|| '-'
|| fc.segment1
|| '-'
|| di.transtype,
'CIP'
|| '-'
|| fc.segment1
|| '-'
|| 'TRANSFER',
'CIP T/F',
'CIP-0012-' || di.transtype,
'Additions Project Khalifa assets',
'CAPITALIZED-' || fc.segment1 || di.transtype,
'0',
'Additions'
activity
FROM fa_books fb,
fa_additions_b fa,
fa_methods fm,
fa_financial_inquiry_cost_v fic,
fa_categories_vl fc,
fa_capitalize_cip_v facc,
fa_additions_tl fat,
fa_deprn_summary ds,
fa_distribution_inquiry_v di
WHERE ds.asset_id = fa.asset_id
AND fb.asset_id = fa.asset_id
AND fb.asset_id = fic.asset_id
AND di.asset_id = fb.asset_id
AND fb.life_in_months = fm.life_in_months
AND fb.book_type_code = ds.book_type_code
AND fb.book_type_code = fic.book_type_code
AND fa.last_update_date >
TO_DATE (
'01'
|| 'JAN'
|| TO_CHAR (SYSDATE, 'RRRR'),
'DD-MON-RRRR'
AND ds.deprn_run_date =
(SELECT DISTINCT MAX (deprn_run_date)
FROM fa_deprn_summary
WHERE asset_id = fb.asset_id)
AND fic.transaction_header_id_in =
(SELECT DISTINCT
MAX (transaction_header_id_in)
FROM fa_financial_inquiry_cost_v
WHERE asset_id = fb.asset_id)
AND fb.date_effective =
(SELECT DISTINCT MAX (date_effective)
FROM fa_books
WHERE asset_id = fb.asset_id)
AND di.transaction_header_id =
(SELECT DISTINCT
MAX (transaction_header_id)
FROM fa_distribution_inquiry_v
WHERE asset_id = fb.asset_id)
AND fa.attribute_category_code =
fc.segment1 || '-' || fc.segment2
AND fc.segment1 = '0012'
AND fb.asset_id = facc.asset_id
AND fa.asset_id = fat.asset_id
--AND facc.asset_type <> 'CAPITALIZED'
AND fb.deprn_method_code = fm.method_code
AND ds.deprn_source_code <> 'BOOKS'
AND DECODE (
facc.asset_type || '-' || fc.segment1,
'CIP-0012',
'Additions Project Khalifa assets',
'CAPITALIZED-' || fc.segment1,
'0',
'Additions'
) <> '0'/*ORDER BY fb.asset_id*/
UNION
-- Disposal / Transferred / Retired
( -- retired
SELECT DISTINCT asset_id,
cost,
ytd_deprn,
deprn_amount,
deprn_reserve acc_deprn,
cost - deprn_reserve net_bk_val,
cip_cost,
cip_cost_pk,
description cat_desc,
fat_desc sub_cat_desc,
activity
FROM (SELECT DISTINCT
fb.asset_id,
fb.cost,
0 cip_cost,
0 cip_cost_pk,
ds.ytd_deprn,
ds.deprn_reserve,
fc.description,
fat.description fat_desc,
ds.deprn_amount,
'Disposal / Transferred / Retired' activity
FROM fa_books fb,
fa_additions_b fa,
fa_methods fm,
fa_financial_inquiry_cost_v fic,
fa_categories_vl fc,
fa_additions_tl fat,
fa_deprn_summary ds,
fa_mass_ext_retirements_v ret
WHERE ds.asset_id = fa.asset_id
AND fb.asset_id = fa.asset_id
AND fb.asset_id = fic.asset_id
AND fb.life_in_months = fm.life_in_months
AND fb.book_type_code = ds.book_type_code
AND fb.book_type_code = fic.book_type_code
AND fa.last_update_date >
TO_DATE (
'01'
|| 'JAN'
|| TO_CHAR (SYSDATE, 'RRRR'),
'DD-MON-RRRR'
AND ds.deprn_run_date =
(SELECT DISTINCT MAX (deprn_run_date)
FROM fa_deprn_summary
WHERE asset_id = fb.asset_id)
AND fic.transaction_header_id_in =
(SELECT DISTINCT
MAX (transaction_header_id_in)
FROM fa_financial_inquiry_cost_v
WHERE asset_id = fb.asset_id)
AND fb.date_effective =
(SELECT DISTINCT MAX (date_effective)
FROM fa_books
WHERE asset_id = fb.asset_id)
AND fa.attribute_category_code =
fc.segment1 || '-' || fc.segment2
AND fb.asset_id = ret.asset_id
AND fa.asset_id = fat.asset_id
AND fb.deprn_method_code = fm.method_code
AND ds.deprn_source_code <> 'BOOKS'/*ORDER BY fb.asset_id*/
UNION
--transfer
SELECT DISTINCT asset_id,
cost,
ytd_deprn,
deprn_amount,
deprn_reserve acc_deprn,
cost - deprn_reserve net_bk_val,
cip_cost,
cip_cost_pk,
description cat_desc,
fat_desc sub_cat_desc,
activity
FROM (SELECT DISTINCT
fb.asset_id,
fb.cost,
facc.cost cip_cost,
0 cip_cost_pk,
ds.ytd_deprn,
ds.deprn_reserve,
fc.description,
fat.description fat_desc,
ds.deprn_amount,
'Disposal / Transferred / Retired' activity
FROM fa_books fb,
fa_additions_b fa,
fa_methods fm,
fa_financial_inquiry_cost_v fic,
fa_categories_vl fc,
fa_capitalize_cip_v facc,
fa_additions_tl fat,
fa_deprn_summary ds,
fa_distribution_inquiry_v di
WHERE ds.asset_id = fa.asset_id
AND fb.asset_id = fa.asset_id
AND fb.asset_id = fic.asset_id
AND di.asset_id = fb.asset_id
AND fb.life_in_months = fm.life_in_months
AND fb.book_type_code = ds.book_type_code
AND fb.book_type_code = fic.book_type_code
AND fa.last_update_date >
TO_DATE (
'01'
|| 'JAN'
|| TO_CHAR (SYSDATE, 'RRRR'),
'DD-MON-RRRR'
AND ds.deprn_run_date =
(SELECT DISTINCT MAX (deprn_run_date)
FROM fa_deprn_summary
WHERE asset_id = fb.asset_id)
AND fic.transaction_header_id_in =
(SELECT DISTINCT
MAX (transaction_header_id_in)
FROM fa_financial_inquiry_cost_v
WHERE asset_id = fb.asset_id)
AND fb.date_effective =
(SELECT DISTINCT MAX (date_effective)
FROM fa_books
WHERE asset_id = fb.asset_id)
AND di.transaction_header_id =
(SELECT DISTINCT
MAX (transaction_header_id)
FROM fa_distribution_inquiry_v
WHERE asset_id = fb.asset_id
AND transtype = 'TRANSFER')
AND fa.attribute_category_code =
fc.segment1 || '-' || fc.segment2
AND fb.asset_id = facc.asset_id
AND fa.asset_id = fat.asset_id
AND facc.asset_type = 'CAPITALIZED'
AND fb.deprn_method_code = fm.method_code
AND ds.deprn_source_code <> 'BOOKS'/*ORDER BY fb.asset_id*/
GROUP BY cat_desc, activity
ORDER BY activityBrgds,
Max -
Please see below matrix report before and after I run. How can I find percentage of below marked fields,
for example: 1/3=0.33 (%33) Female(PAs)/Total(PAs)=?
Erdal HuzmeliHi Erdal,
According to your description, you have a matrix report and you want to get percentage of two different column in this report. Right?
In Reporting Service, we can’t just use ReportItem function or aggregation function with scope string to calculation when we are working in a matrix because the columns of matrix are dynamic. So we need to define some functions in custom code and do calculation
by calling those functions. Your scenario has been tested in our local environment. Here are some steps and screenshots for your reference:
Add the custom code below into your report:
Dim Shared Num1 As Integer
Dim shared Num2 As Integer
Public Function GetPA(PA as Integer, Type as String)
If Type = "Male" Then
Num1=PA
ELSE If Type="Female" Then
Num2=PA
End If
Return PA
End Function
Public Function GetMalePct()
Return Num1/(Num1+Num2)
End Function
Public Function GetFemalePct()
Return Num2/(Num1+Num2)
End Function
Ps: We notice that Total PA=Male PA +Female PA. So we use “Num1+Num2” in the functions that we define in the custom code instead of using “SUM(Fields!PA.Value)” in expression.
Put the expression below into the PA textbox in Gender group:
=Code.getPA(SUM(Fields!PA.Value),Fields!Gender.Value)
Put the expression below Female textbox within Gender Percentage:
=Code.getFemalePct()
Put the expression below Male textbox within Gender Percentage:
=Code.getMalePct()
Save and preview, the matrix and result looks like below:
Reference:
Custom Code and Assembly References in Expressions in Report Designer (SSRS)
How to calculate the Percent change in a dynamic
If you have any question, please feel free to ask.
Best Regards,
Simon Hou -
SSRS Matrix report to show or hide year column based on parameter value "Date" selected.
Hey experts!
I have a requirement an ssrs matrix report should display columns (year/s) based on parameter value (date/s).
My Dataset fileds are: Product, Year_name, Month_name, Date
Currently my report output looks like this-
Param Date: 2013-08-01 00:00:0.000
Product +Calender2011 +Calender2012 -Calender 2013........ +Calender2014
Total
Total Jan13 Feb 13 Mar13.. Dec13 Total Total
Abc 100
220
10 20 30....... 20 250 400
Xyz 110
200 50 80 40....... 30 450 600
My requirement: if I'm selecting Date parameter value as '2013-xx-xx' I should only able to see Year column 'Calender2013' and rest of the years should hide. Similarly If I'm selecting Date parameter value as '2014-xx-xx' I should only able to
see Year column 'Calender2014' .
Appreciate your kindly help.
AfanHi Afan,
According to your description, you want to only show the selected year on your report, right?
In this case, you need to get the year from the date parameter using the expression below
=Year(Parameters!Date.Value)
And then use the expression below to get the year from Year_Name field.
=Right(Fields!Year_Name.Value,4)
Then add a filter to the dataset to filter the data like below
Expression:=Year(Parameters!Date.Value)
Operator:=
Value:=Right(Fields!Year_Name.Value,4)
Reference
http://msdn.microsoft.com/en-IN/library/dd255287.aspx
If you have any questions, please feel free to ask.
Regards,
Charlie Liao
TechNet Community Support -
hello...........
I know how to create matrix report but there is one problem
i want to dispaly matrix column name(heading) from table and below it i want to dispaly sum of other fields.
there is problem regarding column header if value is not avilable then header also not displayed currently but i want to dispaly column header also weather value is there or not.
please help me ........Modify the query and add (probably using UNION) dummy records for all columns needed in the matrix.
-
hello,
i need your help to build a matrix report. i do not have any idea about that.
can you please guide me with the hr schema . to build a matrix report.
thanksthanks for the link i have build single query and multi query matrix report with the provided link.
one more thing i need,
i want to add the summary columns with the multi query matrix report there is nothing provided with that link.
can any budy please give me hint/tips
thank you -
Center a report title in Matrix report SSRS 2008
I have fought with my first Matrix report for about a week now. What a pain. Now of course when I seem to be close to the end I can't center my report title on the report. How do I center a title? Help please. Thanks. SSRS 2008.
Hi gainesvillepratt,
After testing the issue in my local environment, we should add a textbox with title value above the matrix. Changing the Width of textbox with the same size as the rendered the matrix Width (Row Groups area width + Column Groups area width * the number of
columns in column group), then setting the TextAlign property to Center in the Properties Windows pane. Thus we can achieve your requirement.
If there are any other questions, please feel free to ask.
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support -
Add zeros on the left in a string of characters
Hi,
I'd like to add zeros on the left in a string of characters. Example:
Char10: 8572 ---> Char10: 0000008572
I'd like to know if there's a standard instruction for this, or a quick way to do it.
Thanks in advance,
GerardTry this
*& Report YCHATEST *
REPORT YCHATEST .
data : l_char(10) value '8275'.
write : / l_char.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = l_char
IMPORTING
OUTPUT = l_char
write : / l_char.
Message was edited by: Sekhar -
Hi ,
I have a report, which is to be built as matrix report. Its a
matrix report with group. But this report has some calculations
to be done at each group level. Can any one tell me how to do
it ? Here is the lay out of the matrix report. This is very
urgent . Please help me out.
Thanks
Feroz
COUNTRY ----> This is the top group
<---- GROUPS------> <----COLUMNS MOVING ACCROSS ------>
DEPT CATEGORY BRAND Month1 Month2 Month3 Month 4 .....
HHN LAUNDRY SURF Sales 800000 |
Units 20000 |
Avg. Price 40 |=> These are the row values
%Sales 60% |-\These are the calculation
%Units 40% |-/
LAUNDRY TOTAL Sales
Units
Avg. Price
% Sales
% Units
HHN TOTAL Sales
Units
Avg. Price
% Sales
% Units
GRAND TOTAL Sales
Units
Avg. Price
% Sales
% UnitsThere is a specific reports discussion forum that you should use
for these questions.
But to answer your question.
Create the report with the wizards and choose group matrix
report.
If you can't define all your calculation using the wizards,
Then add the calculation to the data_model manually, making sure
to add them in the group above the data that they calculate. -
VERY Complicated Matrix Report (9i Builder) Problem
Hi, I am working on a matrix report with 9i Builder , the layout is as follows:
a b c d e
1 x1 x2 x3 x4 x5
2 x6 x7 x8 x9 x10
How can I control the report so that the layout can be changed as follows?
a b c
d e
1 x1 x2 x3
x4 x5
2 x6 x7 x8
x9 x10
(x are the cross product values, a to e are the column headings, 1 to 2 indicate horizontal groups)You will need to include an additional column of your date column to your SQL statement.
e.g Your original column - to_char(your_date_column,'Month') "Months Name".
Add a new column - to_char(your_date_column,'MM') "Sort Column".
In the Matrix Row, include this new column field also. In the Data Model, move this new column field to the top. Remove the Break Order property to NONE for your original date field (Months Name).
Maybe you are looking for
-
I am getting Error = 9006 when downloading some Podcasts
I am getting Error = 9006 when downloading a podcast, Derb Radio on TakiMag, but not other podcasts. It started occurring recently, about 3 of the last 4. This occurs on both a Windows and Apple machine. iTunes is updated. It does not occur with o
-
This question was posted in response to the following article: http://help.adobe.com/en_US/ColdFusion/10.0/Developing/WSd160b5fdf5100e8f639b4550129d6ce3d 4f-8000.html
-
Installing VPN Client 5.0.01.0600 on Vista
Hi There, I'm having some problems with the VPN client 5.0.01.0600 for Windows Vista. I've installed the client but when trying to connect I receive the following error; "Reason 421: The remote peer is not responding" This to me would suggest an issu
-
Istore 11.5.10 - creating a new site and assigning existing users to that
Hi, I need to create a new site in iStore and assign all the Canada customers to that site. Can you please let me know how to do this. I though that I would create a custom responsibility ABC_IBE_CUSTOMER same as IBE_CUSTOMER and attach that responsi
-
MDX Query Returns Error while Executing this from SSMS through openquery
Hi I'm getting this kind of Error while executing this .. Pls help to get it solve .