Chapter Contents |
Previous |
Next |
SAS SQL Query Window User's Guide |
You can implement automatic lookup for any column in a table that can be accessed from the SQL Query window. An action automatically occurs when that column and an operator is selected from the Where Expression window.
Implement automatic lookup by creating a SAS data set called a lookup table. Insert a set of values into the lookup table for each column for which you want a Lookup Values window to be displayed.
Lookup Strategies |
You can specify any one of five lookup strategies for each column:
If the first column contains a small number of distinct rows in comparison to the number of rows in the table, the distinct values and their descriptions can be stored in a separate table. This table can be used to display automatic lookup values for the subset conditions.
Creating an Empty Lookup Table |
You can use the following PROC SQL statements to create an empty lookup table.
proc sql; create table sasuser.lookup (lookltc char(100) label='library.table.column', lookinfo char(200) label='varies depending on strategy', strategy char(8) label='lookup strategy to use' );
SASUSER.LOOKUP is the default name of the lookup table.
Adding a Row to the Lookup Table |
After you create the empty lookup table, you can submit additional PROC SQL statements to insert values into the table's LOOKLTC, LOOKINFO, and STRATEGY columns. You can also invoke PROC FSEDIT to add this information. The syntax for inserting values into the table is:
proc sql; insert into lookup.table values('lookltc-value','lookinfo-value','strategy-value');
Add a row to the SASUSER.LOOKUP data set by submitting the following code in the PROGRAM EDITOR window:
proc sql; insert into sasuser.lookup values('sample.empinfo.location','sample.program.region.frame','P'); quit;
SAMPLE.PROGRAM.REGION.FRAME is a FRAME entry that is part of the sample library you are using for these examples.
Using the Lookup Table |
To display the number of employees in each division within a specific geographic region, from the SQL QUERY TABLES window, select
File | List/Include Saved Queries... |
to display the Saved Queries window.
Select
SASUSER.PROFILE.COUNTS
, which was created inCounting and Grouping Data Automatically.
Select
Include
to include the query and to return to the
SQL QUERY TABLES window.
Select
View | Where Conditions for Subset... |
to display the WHERE EXPRESSION window.
Select
Operators
. Select
AND
from the list of operators.
Select
EMPINFO.LOCATION
from the list of Available Columns.
Select
EQ
from the list of comparison operators that appears.
Because you have defined EMPINFO.LOCATION with an automatic lookup, the Company
Locations window will automatically appear.
Select the westernmost site to complete the WHERE clause.
Viewing Your Output |
Select
OK
.
Select
Tools | Run Query | Run Immediate |
to display the results of your query.
Select
Tools | Reset |
to reset your query.
Creating a Slider Bar to Indicate a Range |
You can use a slider bar to select a range of lookup values in a query.
In this example, you will associate the slider with EMPINFO.salary.
Because you may not want to permanently associate these lookup values with
the EMPINFO.salary column, you can insert the lookup table into a different
profile and switch to that profile when you want to use the slider bar.
Use the following PROC SQL statements to create an empty lookup table in the SAMPLE directory.
proc sql; create table sample.lookup (lookltc char(100) label='library.table.column', lookinfo char(200) label='varies depending on strategy', strategy char(8) label='lookup strategy to use' );
Add a row to the SAMPLE.LOOKUP data set by submitting the following code in the PROGRAM EDITOR window:
proc sql; insert into sample.lookup values('sample.salary.salary','sample.program.salrange.frame','P'); quit;
SAMPLE.PROGRAM.SALRANGE.FRAME is a FRAME entry that is part of the sample
library you are using for these examples.
Create an SQL Query Window profile that specifies SAMPLE.LOOKUP as the automatic lookup table. From the PMENU, select
Profile | Set Preferences... |
Select the [→] next to
Automatic Lookup
to display
the Set Lookup SAS Data Set for Preferences window.
Select
SAMPLE
from the list of Libraries. Select
OK
to return to the Preference Settings for Profile window.
Select the [→] next to
Data Restrictions
to display
the Data Restrictions for Profile window. Select
SAMPLE
from the list of
Table Sources. Select
Add entire Table Source to preferences
from the pop-up menu that appears. Select
WORK
from the list of Table
Sources. Select
Add entire
Table Source to preferences
from the pop-up menu that appears.
Select
OK
to return to the Preference Settings for Profile
window.
Select
Save
to save your new profile setting. Type LOOKUP
in the
Entry Name:
field of the Name Catalog Entry for Profile
window. Type
Slider Bar for Salary Range
in the
Entry description
for the profile:
field.
Select
OK
to return to the Preference Settings for Profile
window. Select
Close
.
From the SQL QUERY TABLES window PMENU, select
Tools | Switch to New Profile |
Select the
[→] next to
Profile Name:
to display
a list of profiles. Select
SASUSER.PROFILE.LOOKUP
from the Preference
Profiles in Catalog window.
Select
OK
to return to the SQL QUERY TABLES window and to
complete the switch to the new profile.
See Setting Your Profile
for more information on the SQL Query Window user profile.
To show how
the slider works, you can construct a simple WHERE expression that displays
the range of salaries. In the SQL QUERY TABLES window, select SAMPLE.SALARY
from the list of Available Tables and add it to the list of Selected Tables.
Select
OK
to display the SQL QUERY COLUMNS window.
In the SQL QUERY COLUMNS window, select
Salary
and
Identification Number
from the list of Available Columns and add them to the list of Selected
Columns.
Select
View | Where Conditions for Subset... |
In the WHERE EXPRESSION window, select
Salary
from the list of
Available Columns. Select
Between
from the list of
OTHER Operators
. Because the lookup table is associated with the Salary column, the
slider bar that is the FRAME entry appears.
Select
OK
to accept the value of
12000
. The slider bar
appears again because the
Between
requires a second value. Move
the slider to the right until
51000
is displayed. Select
OK
to complete the WHERE expression.
Select
OK
to return to the SQL QUERY COLUMNS window. Select
Tools | Run Query | Run Immediate |
to display the employee identification numbers whose salaries are between $12,000 and $51,000.
Select
Tools | Reset |
to reset the query and return to the SQL QUERY TABLES window.
If your site is licensed to use SAS/AF software, you can use SAS Screen Control Language (SCL) to create a lookup table that uses the SAMPLE.PROGRAM.SALRANGE.FRAME entry or another FRAME entry that you design.
entry looklst 8 lkuptype $1 rc 8 msg $40 wherelst 8; init: salrange =12000; lkuptype = 'N'; return; main: return; term: return; range: call notify('range', '_GET_VALUE_', value); call notify('salrange', '_SET_VALUE_', value); return; ok: call notify('salrange', '_GET_VALUE_', value); looklst = insertn(looklst, value, 1); rc = 0; _status_ = 'H'; link term; return;
Refer to SAS Component Language: Reference for more information on SCL.
Chapter Contents |
Previous |
Next |
Top of Page |
Copyright 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.