Problem Note 34931: SAS® Scalable Performance Data Server® KEEPLIST with "DO SOME" WHERE clause returns incorrect results
When using a WHERE clause in conjunction with a VAR list to query a
SAS® Scalable Performance Data Server table,
the variable in the WHERE clause must also be specified in the VAR list.
Consider the following example:
libname outt sasspds 'newspds' host='intellifire' serv='5190' user='user12'
password=XXXXXXXXXXX aclgrp='admingrp' unixdomain=yes netcomp=no;
proc summary data=SCRATCH.CHECK_9317 missing;
where (MARKETINGCAMPAIGN= 'Internet - MyLending ')
AND (put(SUBMISSIONDATE, ? YYMMD7.) = '2008-11');
var
M0000255 SOLICITS_SUM LEADS_SUM APPS_SUM SUBS_SUM FUNDINGS_SUM BACKEND_T_SUM
BACKEND_T_N TOTAL_COST_SUM TOTAL_SUB_SUM TOTAL_FUND_AMT_SUM
REVENUE_NONCOMMISSIONABLE_SUM REVENUE_SUM ;
run;
Note that the variable MARKETINGCAMPAIGN is in the WHERE clause, but not on the VAR statement.
Because of this, SAS Scalable Performance Data Server cannot perform the
(put(SUBMISSIONDATE,YYMMD7.) = '2008-11' part of the WHERE clause.
SAS Scalable Performance Data Server filters the rows it can, using the
MARKETINGCAMPAIGN='Internet - MyLending'
portion of the WHERE clause. The rows are then returned to SAS, which then
re-applies the entire WHERE clause to the returned rows.
The column MARKETINGCAMPAIGN must come back from SAS Scalable Performance Data Server
in order for SAS to satisfy the part of the WHERE clause that refers to that column.
In this example, that cannot happen because SAS Scalable Performance Data Server
is pushing a KEEP list on the query that contains only the columns on the VAR list,
and that list does not include MARKETINGCAMPAIGN.
When SAS gets the result back, it has the 32 columns on the VAR list, but is applying
the entire WHERE clause to the rows including the MARKETINGCAMPAIGN part.
Since the MARKETINGCAMPAIGN column is not in the result set from the query to
SAS Scalable Performance Data Server, it returns 0 obervations when in fact
it should return >0 observations.
Operating System and Release Information
SPDS | Scalable Performance Data Server | Microsoft® Windows® for x64 | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
Microsoft Windows 95/98 | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
Microsoft Windows 2000 Advanced Server | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
Microsoft Windows 2000 Datacenter Server | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
Microsoft Windows 2000 Server | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
Microsoft Windows 2000 Professional | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
Microsoft Windows NT Workstation | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
Microsoft Windows Server 2003 Datacenter Edition | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
Microsoft Windows Server 2003 Enterprise Edition | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
Microsoft Windows Server 2003 Standard Edition | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
Microsoft Windows XP Professional | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
Windows Millennium Edition (Me) | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
Windows Vista | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
64-bit Enabled AIX | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
64-bit Enabled HP-UX | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
64-bit Enabled Solaris | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
HP-UX IPF | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
Solaris for x64 | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
Tru64 UNIX | 4.4 TSM7 | 4.4 TSM8 | | 9.2 TS1M1 |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
Type: | Problem Note |
Priority: | medium |
Date Modified: | 2009-10-05 18:20:47 |
Date Created: | 2009-02-24 15:23:04 |