Yes, you've right. If I put = the query will return None ! The only query which return what i want is only raw sql:
select min(abs(width-240)) as m,width from table_pricelisttable where name_id = 1 group by width order by m limit 1; than performing the second query to get object. like: cursor = connection.cursor() cursor.execute("select min(abs(width-%s)) as m, width from table_pricelisttable where name_id = %s group by width order by m limit 1;" , [w,pricelist.id]) row = cursor.fetchone() base=pricelisttable_set.get(width=row[1]) On 7/30/07, Tim Chase <[EMAIL PROTECTED]> wrote: > > > Seems to work now with: > > w=240 > > pricelisttable_set.extra(where=["""(table_pricelisttable.width - %s) > > >= ( SELECT Min(Abs(pl.width - %s)) FROM table_pricelisttable pl) > > """], params=[w, w])[0] > > I would be very surprised if it works now as described with ">=" > rather than "=". It's basically asking for anything where the > difference between the target and the width is > greater-than-or-equal to the minimum difference. Thus, this > looks like it would return your whole dataset. It sounded like > you were only interested in those PriceList items where the width > was closest to (equal to) the minimum difference. > > -tim > > > > > > > > > -- -- Michael --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---