> Hi Matthew, hi Christiaan,
>> I agree that the candidateCollectionExpression description is a
>> bit cryptic.
> Do you have an idea for a better description? The reason to include
> something like "tokens from this query" is that we have to define
> the scope for identifiers used in the
> candidateCollectionExpression. So in "this.department.employees"
> this denotes the candidate instance of the outer query and NOT of
> the subquery.
>>
>> Boy, it's been a long time since I thought about subqueries. Can
>> we also provide single-string versions of the examples? That
>> would be helpful.
> Do you mean add single string JDOQL of the examples to the spec or
> provide them for this email discussion? I agree it would be useful
> to add them to the spec. If you are just interested for right now:
> - employees who work more than the average of all employees
> SELECT FROM Employee WHERE this.weeklyhours > (SELECT AVG
> (e.weeklyhours) FROM Employee e)
> - employees who work more than the average of their department
> employees
> SELECT FROM Employee WHERE this.weeklyhours > (SELECT AVG
> (e.weeklyhours) FROM this.department.employees e)
> - employees who work more than the average of the employees in
> their department having the same manager:
> SELECT FROM Employee WHERE this.weeklyhours >
> (SELECT AVG(e.weeklyhours) FROM Employee e WHERE e.manager ==
> this.manager)
>
> Christiaan,
> yes, I think the query code you added to your email returns the
> same result.
>
> Regards Michael
>
>> -matthew
>>
>> On Oct 25, 2007, at 5:07 AM, Christiaan wrote:
>>
>>>
>>> Hi Craig,
>>> the examples are very informative. I must say that I find the
>>> description
>>> for candidateCollectionExpression
>>> "The candidateCollectionExpression is the expression using tokens
>>> from
>>> this query that represent the candidates over which the subquery is
>>> evaluated. "
>>> a little bit cryptic (I actually find the paramater name more
>>> descriptive
>>> than the description). Especially "tokens from this query" (is
>>> tokens a
>>> common word for this and may be it should be stressed that this
>>> query is the
>>> outer query?) and "over which the subquery is evaluated", but may
>>> be this is
>>> needed for the spec.
>>>
>>> Anyway, do I understand it correctly that it is the same as:
>>> ....
>>> sub.setFilter(":departmentEmployees.contains(this)");
>>> Query q = pm.newQuery(Employee.class);
>>> q.setFilter("this.weeklyHours > averageWeeklyhours");
>>> q.addSubquery(sub, "double averageWeeklyhours", null,
>>> "this.department.employees");
>>>
>>> kind regards,
>>> Christiaan
>>> --
>>> View this message in context:
http://www.nabble.com/Subquery-
>>> specification-update-tf4686785.html#a13405438
>>> Sent from the JDO - Development mailing list archive at Nabble.com.
>>>
>
>
> --
> Tech@Spree Engineering GmbH Tel.: +49/(0)30/235 520-33
> Buelowstr. 66 Fax.: +49/(0)30/217 520-12
> 10783 Berlin mailto:
mbo.tech@...
> Geschaeftsfuehrung: Anna-Kristin Proefrock
> Sitz Berlin, Amtsgericht Charlottenburg, HRB 564 52
>