Hello,

I want to have results of a query, ordered by a count() field.
I've tried :
 >>>Catalogue._connection.sqlrepr(sqlbuilder.Select([Fournisseurs.q.id, 
func.Count(Fournisseurs.q.id)]
                                                            
,AND(Catalogue.q.marqueID==self.id
                                                                
,CatalogueFournisseurs.q.fournisseurID==Fournisseurs.q.id
                                                                
,CatalogueFournisseurs.q.catalogueID==Catalogue.q.id
                                                                )
                                                            
,groupBy=Fournisseurs.q.id
                                                            ,orderBy= 
func.Count(Fournisseurs.q.id)
                                                )
                                            )
SELECT nt_fournisseurs.no_fournisseur, 
Count(nt_fournisseurs.no_fournisseur) FROM nt_fournisseurs, 
nt_catalogue_fournisseurs, nt_catalogue WHERE ((nt_catalogue.no_marque = 
376) AND ((nt_catalogue_fournisseurs.no_fournisseur = 
nt_fournisseurs.no_fournisseur) AND 
(nt_catalogue_fournisseurs.no_catalogue = nt_catalogue.no_catalogue))) 
GROUP BY nt_fournisseurs.no_fournisseur ORDER BY 
Count(nt_fournisseurs.no_fournisseur)
 
But (almost) in MySQL I have an error : ERROR 1111: Invalid use of group 
function
The right SQL is

SELECT nt_fournisseurs.no_fournisseur, 
Count(nt_fournisseurs.no_fournisseur) AS nn FROM...
ORDER BY nn

How can I make a field alias ?

François


_______________________________________________
sqlobject-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss

Reply via email to