Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Correlated Subqueries not allowed in views?
Message
From
20/01/1999 12:48:01
 
 
To
19/01/1999 23:40:20
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
00177885
Message ID:
00178117
Views:
42
I think the problem is that you may be looking at this from an Xbase perspective rather than an SQL perspective. Remember, SQL returns sets of records (even sets of one or even zero records). Your subquery should return a set of one record with one field (probably named CNT) that has the count of records that meet the subquery's criterion. The SQL engine in VFP doesn't understand how to do the greater than comparison in your main query between

lFullyPaid .and. ;
ceiling( (DaysToPaid() - IntCalc.ic_days) / 30 ) + 1

and the resultant set from the subquery. The long and short of it is the line in the help on SQL - Select that "you can not nest field functions" which includes COUNT(*). You are going to have to break this up into multiple queries. Sorry.

>Please have a look at the lines marked with "$". VFP returned the error "This type of query not allowed" when I tried to open the view. Does that refere to the subquery?
>Is this type of subquery allowed in views in 6.0?
>
>Thanks - Miles Thompson
>
>create sql view lv_intcalcsource as ;
>select InvHead.cinvoi_key, ;
> <snip>
> InvHead.cPenRevAcc ;
> from hea!InvHead inner join hea!Company ;
> on InvHead.cCompa_Key = Company.cCompa_Key ;
> where ;
> ( DaysToPaid() > IntCalc.ic_days .and. .not. lFullyPaid ) ;
> .or. ;
> ( lFullyPaid .and. ;
> ceiling( (DaysToPaid() - IntCalc.ic_days) / 30 ) + 1 > ;
>$ (select count(*) ;
>$ from InterestDetails ;
>$ where InvHead.cInvoi_Key = cDet_InvoiKey) ) ;
> order by Company.cCompanyName, InvHead.dCompletionDate
Previous
Reply
Map
View

Click here to load this message in the networking platform