proc access dbms=oracle; /* Create the access descriptor and provide the ORACLE */ /* server connection information (username, password and */ /* ORACLE device driver information. store1 is the */ /* ORACLE SQL*Net designation of the ORACLE server. */ create sasuser.s1shoe.access; user=wagner; orapw=tennis; path=store1; table=shoe; /* Create a view descriptor based on the sasuser.s1shoe */ /* access descriptor. Supply subsetting information to */ /* limit the items to only shoes (shoe ids are contained */ /* in the shoeparts table) but get information on all of */ /* the columns in the shoe inventory table (select all) */ create sasuser.s1shoe.view; select all; subset where invo in (select shoeid from shoeparts); run; ________________________________________________________________________ proc access dbms=as400; /* Create the access descriptor based on the AS/400 */ /* collection clothing at the mail order site */ create sasuser.shoem1.access; collection=clothing; table=sptswear; /* Select just the columns from the access descriptor */ /* to extract just the shoe information. For the mail */ /* order databases, shoe inventory numbers are 100-199. */ create sasuser.shoem1.view; select invno, wholepr, retpr, shsize, instock; subset where invo between 100 and 199; run; ________________________________________________________________________ proc sql; /* Make the connection to the database */ connect to db2(ssid=invt); /* Select the shoe information and the customer the */ /* shoes were ordered for. Instead of inventory id */ /* the distribution center keeps manufacturer and */ /* style information in the orders table. */ create view sasuser.shoedc as select * from connection to db2 (select manufact, style, size, custid from orders); quit; ________________________________________________________________________ proc sql; /* The table whouse.allshoes will contain information about */ /* all of the shoes in The Sweat Shop inventory. Here we */ /* create the table and populate it with data from two of */ /* the retail outlets. */ create table whouse.allshoes like sasuser.s1shoe; insert into whouse.allshoes select invo as shoetype, size, count, price from sasuser.s1shoe outer union corr select invo as shoetype, size, count, price from sasuser.s2shoe; ________________________________________________________________________ data whouse.inventry(drop=wholepr, invo); /* Include the information from the different sources. */ /* Variable names and inventory numbers are transformed */ /* to the metabase definition */ set whouse.allshoes (in=allshoe) sasuser.shoem1 (rename=(retpr=price shsize=size instock=count)); /* shoecnv. format will convert the disparate shoe */ /* inventory numbers to the format used by the metabase.*/ if no allshoe then shoetype=put(invo, shoecnv.); ________________________________________________________________________ proc format; value shoecnv 100=27 101=42 statements to convert other inventory item run; ________________________________________________________________________ select manufact, style, size, count(*) from sasuser.shoedc group by manufact, style, size; ________________________________________________________________________