ODS proc report problem trying to compute group sum varibles
Below is a the potions of the log showing my error IQCURQTY AND IQQTYPLC has 0's in the data....but
I want to get the percentage on the sums of IQCURQTY AND IQQTYPLC. How do I define it and and compute it for TT
+ by descending percent_done ccontid;
755 + *****format cndtlet worddate18.*******;
756 + column gitem IQCURQTY IQQTYPLC TT;
757 + define gitem / group 'Item';
758 + define IQCURQTY / 'Quantity';
759 + define IQQTYPLC / ' Quantity Place';
760 + define TT / computed format=9.2;
761 +
762 +Compute TT;
763 + TT =IQQTYPLC_sum/IQCURQTY_sum;
764 +
765 +
766 +endcomp;
767 + run;
NOTE: Variable IQCURQTY_sum is uninitialized.
NOTE: Variable IQQTYPLC_sum is uninitialized.
NOTE: Division by zero detected at line 1 column 18.
NOTE: Division by zero detected at line 1 column 18.
NOTE: Division by zero detected at line 1 column 18.
NOTE: Division by zero detected at line 1 column 18.
NOTE: Division by zero detected at line 1 column 18.
NOTE: Division by zero detected at line 1 column 18.
NOTE: Division by zero detected at line 1 column 18.
NOTE: Mathematical operations could not be performed at the following places. The results of the operations have been set to missing values.
Each place is given by: (Number of times) at (Line):(Column).
7 at 1:18
NOTE: The above message was for the following BY group:
percent_done=1.3341645885 CCONTID=CCCVVV
NOTE: There were 85 observations read from the data set WORK.REPORT23.
NOTE: PROCEDURE REPORT used (Total process time):
real time 0.65 seconds
cpu time 0.09 seconds
This is what I am looking for in my report
Item Quantity Quantity Place TT what I am looking for TT to be
1 7.000 2.000 . .285
2 3824.000 3065.140 . .801
3 2262.000 2185.730 . .966
4 265.000 281.310 . 1.061
6 8282.000 12883.010 . 1.555
7 254556.920 264040.305 . 1.037
8 5018.000 3826.000 . .762
Hi:
PROC REPORT is telling you part of the problem with this message:
NOTE: Variable IQCURQTY_sum is uninitialized.
NOTE: Variable IQQTYPLC_sum is uninitialized.
Why do you have IQQTYPLC_sum??? That is not the correct way to reference a numeric item that has a usage of SUM. Instead of this:
TT =IQQTYPLC_sum/IQCURQTY_sum;
the correct syntax would be something like:
TT =IQQTYPLC.sum/IQCURQTY.sum;
I'd suggest reading the PROC REPORT documentation on how to use a compound name to reference numeric report items:
Base SAS(R) 9.4 Procedures Guide, Second Edition
where the documentation clearly explains that a compound name is:
variable-name.statistic
cynthia
Hi:
PROC REPORT is telling you part of the problem with this message:
NOTE: Variable IQCURQTY_sum is uninitialized.
NOTE: Variable IQQTYPLC_sum is uninitialized.
Why do you have IQQTYPLC_sum??? That is not the correct way to reference a numeric item that has a usage of SUM. Instead of this:
TT =IQQTYPLC_sum/IQCURQTY_sum;
the correct syntax would be something like:
TT =IQQTYPLC.sum/IQCURQTY.sum;
I'd suggest reading the PROC REPORT documentation on how to use a compound name to reference numeric report items:
Base SAS(R) 9.4 Procedures Guide, Second Edition
where the documentation clearly explains that a compound name is:
variable-name.statistic
cynthia
Cynthia,
Thanks for the Link to the Procedures Guide. I'll start reading it. I had a ODS class years ago and I have two books one on ODS and the other on reports.
One of them was showing me (dot)sum but not like I was trying to use it. So as you indicated I was not sure what NOTE: Variable IQCURQTY_sum is uninitialized.
was meaning. I should have tried and google the note.
Thanks also for the syntax was looking for.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.