-
[sql 3] Group By
Bonjour,
J'ai quelque question sur la fonction MAX/GROUP BY
Si j'ai la table
CREATE TABLE Achat
ID INTEGER,
Societe CHAR(32)
Montant INTEGER,
Date DATE,
Avec
INSERT INTO Achat (Societe, Montant, Date)
VALUES ('SteA', 10, 09/2/2006)
INSERT INTO Achat (Societe, Montant, Date)
VALUES ('SteA', 32, 09/3/2006)
INSERT INTO Achat (Societe, Montant, Date)
VALUES ('SteA', 28, 09/4/2006)
INSERT INTO Achat (Societe, Montant, Date)
VALUES ('SteB', 5, 09/4/2006)
INSERT INTO Achat (Societe, Montant, Date)
VALUES ('SteB', 6, 09/5/2006)
Je souhaite effectuer une requete qui me donne le montant max par societe
Societe MaxMontant
------ ----------
SteA 32
SteB 6
Pour ca j'ai la bonne requete:
SELECT Societe, Max(Montant) AS MaxMontant
FROM Achat
GROUP BY Societe
Mais si je veux aussi avoir le champ Date corespondant, je suis oblige de rajouter de le rajouter dans GROUP BY, ce qui me donne un resultant different de celui attendu. J'aimerai le resultat suivant:
Societe Montant Date
------ ---------- ------
SteA 32 09/3/2006
SteB 6 09/6/2006
Comment puis-je faire?
Merci.
-
salut,
elle vient de ou la date de ton résultat?
je comprends pas trop la
-
La date vient de la table Achat, mais il y a une erreur dans le resultant que je voudrais obtenir pour la SteB, le tableau que je voudrais est:
Societe Montant Date
------ ---------- ------
SteA 32 09/3/2006
SteB 6 09/5/2006
-
je parlais justement pour steB, je ne vois pas cette date dans tes insertions données
-
essaie ceci peut etre :
SELECT Societe, Montant, date FROM Achat
where Montant in (select distinct Max(Montant) from Achat group by Societe)