Requete SQL
Résolu/Fermé
A voir également:
- Requete SQL
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- Logiciel sql - Télécharger - Bases de données
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
- Sql server recovery - Télécharger - Gestion de données
- Requête sql doublons sur 2 champs ✓ - Forum Programmation
6 réponses
Stringman621
Messages postés
1308
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
1 septembre 2012
338
16 déc. 2011 à 13:18
16 déc. 2011 à 13:18
Bonjour,
Petite précision tu recherche, la dernière commande pour chaque client c'est bien ca ?
Petite précision tu recherche, la dernière commande pour chaque client c'est bien ca ?
Stringman621
Messages postés
1308
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
1 septembre 2012
338
16 déc. 2011 à 13:29
16 déc. 2011 à 13:29
Je ne connais pas la structure de ta table COMMANDE mais je suppose qu'en clé étrangère tu doit avec l'id du client, donc la requête pourrait être :
SELECT MAX(DateCmd), IDCommande, IDClient
FROM Commande
GROUP BY IDClient;
Je ne suis pas sûr de la requête j'ai un doute sur le GROUP BY du fait que l'on utilisate la fonction MAX() il va peut être demandé IDCommande dans le GROUP BY mais essaie comme ça...
SELECT MAX(DateCmd), IDCommande, IDClient
FROM Commande
GROUP BY IDClient;
Je ne suis pas sûr de la requête j'ai un doute sur le GROUP BY du fait que l'on utilisate la fonction MAX() il va peut être demandé IDCommande dans le GROUP BY mais essaie comme ça...
Stringman621
Messages postés
1308
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
1 septembre 2012
338
16 déc. 2011 à 13:32
16 déc. 2011 à 13:32
Ou alors, en utilisant une sous-requête :
SELECT IDCommande
FROM Commande
WHERE DateCmd IN (
SELECT MAX(DateCmd)
FROM COMMANDE
GROUP BY IDClient);
SELECT IDCommande
FROM Commande
WHERE DateCmd IN (
SELECT MAX(DateCmd)
FROM COMMANDE
GROUP BY IDClient);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Heremion
Messages postés
538
Date d'inscription
vendredi 20 mai 2011
Statut
Membre
Dernière intervention
1 juin 2022
102
16 déc. 2011 à 13:42
16 déc. 2011 à 13:42
Bonjour Franck,
Ta requête est correcte et, en admettant que tes ID_COMMAND soient des auto_incrément, pourquoi ne pas lancer un
Ta requête est correcte et, en admettant que tes ID_COMMAND soient des auto_incrément, pourquoi ne pas lancer un
order by ID_COMMAND desc?
La requete suivante ne fonctionne pas :
SELECT MAX(DateCmd), IDCommande, IDClient
FROM Commande
GROUP BY IDClient;
Il manque une rubrique dans le group by (IDCommande)
Mais si on l'ajoute, on a toutes les commandes
La requete suivante ne fonctionne pas non plus :
SELECT IDCommande
FROM Commande
WHERE DateCmd IN (
SELECT MAX(DateCmd)
FROM COMMANDE
GROUP BY IDClient);
Cette requete renvoie une ligne suplémentaire pour chaque commande avec la même date.
On m'a donné une solution qui marche tres bien :
SELECT tmp.IDClient, tmp.date_derniere_commande, c.IDCommande
FROM Commande c
INNER JOIN
(
SELECT IDClient, MAX(DateCmd) AS date_derniere_commande
FROM Commande
GROUP BY IDClient
) tmp
ON tmp.IDClient = c.IDClient
AND tmp.date_derniere_commande = c.DateCmd
Merci pour votre aide
SELECT MAX(DateCmd), IDCommande, IDClient
FROM Commande
GROUP BY IDClient;
Il manque une rubrique dans le group by (IDCommande)
Mais si on l'ajoute, on a toutes les commandes
La requete suivante ne fonctionne pas non plus :
SELECT IDCommande
FROM Commande
WHERE DateCmd IN (
SELECT MAX(DateCmd)
FROM COMMANDE
GROUP BY IDClient);
Cette requete renvoie une ligne suplémentaire pour chaque commande avec la même date.
On m'a donné une solution qui marche tres bien :
SELECT tmp.IDClient, tmp.date_derniere_commande, c.IDCommande
FROM Commande c
INNER JOIN
(
SELECT IDClient, MAX(DateCmd) AS date_derniere_commande
FROM Commande
GROUP BY IDClient
) tmp
ON tmp.IDClient = c.IDClient
AND tmp.date_derniere_commande = c.DateCmd
Merci pour votre aide