MDAC 2.5 SDK - OLE DB Providers
Data Shaping Service for OLE DB
The Data Shaping Service for OLE DB can be used to group a hierarchical structure to produce a grand total. In this example, certain columns are selected by cust_id from the Customers table, including the order amount; the order information is selected from the Orders table. All data is fetched before it is related and totaled. The resulting child rowset is named rsDetail. RsDetail is then summed using the ordered amount for any customer ID within the scope. The resulting rowset, rsCustGrp, is the parent of rsDetail and contains the summary information of all child rowsets. By eliminating the BY clause in the outer summary, the COMPUTE SUM statement produces the grand total for order summaries of the parent rows.
SHAPE
(SHAPE {select customer.*, orders.order_id, orders.order_amt
from Customers, Orders where customer.cust_id = orders.cust_id}
AS rsDetail
COMPUTE SUM(rsDetail.order_amt)
AS cust_ord_sum,
ANY(rsDetail.cust_name)
AS cust_name, rsDetail
BY cust_id )
AS rsCustGrp
COMPUTE SUM(rsCustGrp.cust_ord_sum)
AS grand_total, rsCustGrp
This results in the following hierarchy with a grand total: