Je crée une requête simple avec des agrégats. L'exemple est:Requête subsonique 3 - erreur globale
string query = new SubSonic.Query.Select(
SubSonic.Query.Aggregate.GroupBy("ProductID", "ID"),
SubSonic.Query.Aggregate.Max("Price", "MaxPrice")
).From("Orders").ToString();
Le résultat est Sql:
SELECT ProductID AS ID, MAX(Price) AS MaxPrice
FROM [Orders]
lorsque le résultat devrait être:
SELECT ProductID AS ID, MAX(Price) AS MaxPrice
FROM [Orders]
GROUP BY ProductID
Dans le résultat SubSonic2.2 est correct mais Subsonic3, le GROUPE L'instruction BY disparaît et la requête renvoie une seule ligne.
Est-ce que mon expression SqlQuery est correcte ou est-ce un bug dans SubSonic3?
merci de répondre, mais j'ai besoin du prix maximum pour chaque produit. Je peux réécrire la requête: SqlQuery query1 = new Sélectionnez(). From ("Orders"); query1.Aggregates = nouvelle Liste { new Aggregate ("ProductID", "ID", AggregateFunction.GroupBy), new Agrégat ("Prix", AggregateFunction.Max)}; MessageBox.Show (query1.ToString()); mais toujours le même résultat, j'ai besoin de la clause SQL 'GROUP BY ProductID' pour obtenir le prix maximum pour chaque produit. –
aris
Le problème est que SqlQuery ne génère pas la partie 'GROUP BY ProductID' dans la requête SQL – aris