MDAC 2.5 SDK - OLE DB Providers
Data Shaping Service for OLE DB


 

Grouped Customers Related to Grouped Orders

                   

By nesting SHAPE commands, you can use the Data Shaping Service for OLE DB to create hierarchies with as many levels as you want. The following example uses three SHAPE commands to create a four-level hierarchy.

In the following code example, data is retrieved from the Customers and Orders tables in the Sales database. The innermost SHAPE command uses select * from orders to create the lowest rowset in the hierarchy. The COMPUTE rsOrdDetail BY cust_id, month clause defines its parent.

The middle SHAPE command uses select * from Customers to create a parent rowset whose child is the parent rowset in the inner SHAPE command.

The outermost SHAPE command creates the root rowset in the hierarchy from
the parent rowset in the middle SHAPE command. It is created by partitioning
the Customers rowset by state.

SHAPE
   (SHAPE {select * from Customers} 
      APPEND (
         (SHAPE {select * from Orders} 
               AS rsOrdDetail 
                  COMPUTE rsOrdDetail 
            BY cust_id, month)  
         RELATE cust_id TO cust_id) 
         AS rsOrdByMonth ) 
      AS rsCustDetail 
   COMPUTE rsCustDetail 
   BY state

This results in a nested four-level hierarchy: