In Oracle reports we use Formula column, Summary column and Place Holder column in different scenarios, this post is to avoid confusion and give clear picture as when and where we need to use these columns.

### Formula column

We use formula column to calculate some information dynamically using information based on the columns of the data model or from the concurrent program parameters. It is basically used to apply some custom logic on input data and return some value.

Formula columns can be written using PL/SQL syntax and we can use pl/sql functions for computation on the data. Formula column will accept data of Character, Number, or Date type.

**Inside or outside data group?**

If we want to calculate a value for every row place the formula column in the group of the data model , so that it called every time for every record and if we want to derive a value at report level place the formula column outside to the data group.

Formula columns are generally preceded by CF_ to distinguish from other columns. Column names or parameters with a prefix ‘:’ in formula column are considers as input to a formula column.

**Examples**:

- Comparison of data in two different columns/variables and perform some action.
- Using some standard oracle pl/sql functions to find out some values like, finding out the master org using oracle standard function as shown below
oe_sys_parameters.value('MASTER_ORGANIZATION_ID',mo_global.get_current_org_id())

- When you need to use any If-else block
- To execute some sql query to find out email-address of a party using party_id

**Note**: Formula column should return some or the other value.

### Summary column

Summary columns are used for calculating summary information like sum, average etc,. on specific columns of a data group. This column uses a set of predefined oracle aggregate functions. Summary columns are generally preceded by CS_ to distinguish them from other columns.

The datatype of a summary column depends on the data type of the source of the summary. If you change the data type of the source column, the datatype of the summary also changes.

In report layout summary columns should be used out of repeating frames. Summary columns will have only one parameter as input.

Below are the standard functions provided by Oracle for a summary column

Function | Purpose |
---|---|

Average | Calculates the average of the column’s values within the reset group. |

Count | Counts the number of records within the reset group. |

First | Prints the column’s first value fetched for the reset group. |

Last | Prints the column’s last value fetched for the reset group. |

Maximum | Calculates the column’s highest value within the reset group. |

Minimum | Calculates the column’s lowest value within the reset group. |

% of Total | Calculates the column’s percent of the total within the reset group. |

Std. Deviation | Calculates the column’s positive square root of the variance for the reset group. |

Sum | Calculates the total of the column’s values within the reset group. |

Variance | Sums the squares of each column value’s distance from the mean value of the reset group and divides the total by the number of values minus 1. |

### Place Holder column

Place holder column is an empty container at design time which is used to hold some value in run time, they are like local/global variables which can be used in the logic of a formula column or in report triggers. Value in the place holder column can be directly accessible in the report layout.

**Inside or outside data group?**

We can use this place holder columns inside the data group or outside the data group.

Place Holder column can be of Character, Date or Number datatype. Place Holder columns are generally preceded by CP_ to distinguish from other columns.