Bonjour à tous,
J'ai 2 tables du style client et commande.
Je voudrais resortir dans une seule requete les infos clients et les infos
de la derniere commande.
Je suis partie sur ça :
SELECT client.id_client , client.nom, commande.id_commande FROM client LEFT
JOIN commande ON client.id_client = commande.id_client ;
Mais j'obtient toutes les commandes. Je sais pas trop où mettre le
Max(numéro commande) sachant qu'un client peut ne pas avoir de commande du
tout.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Laurent Moreau
SELECT client.id_client , client.nom, max(commande.id_commande) FROM client LEFT JOIN commande ON client.id_client = commande.id_client GROUP BY client.id_client , client.nom
Laurent.
"Valérie S" wrote in message news:
Bonjour à tous, J'ai 2 tables du style client et commande.
Je voudrais resortir dans une seule requete les infos clients et les infos de la derniere commande.
Je suis partie sur ça : SELECT client.id_client , client.nom, commande.id_commande FROM client
LEFT
JOIN commande ON client.id_client = commande.id_client ;
Mais j'obtient toutes les commandes. Je sais pas trop où mettre le Max(numéro commande) sachant qu'un client peut ne pas avoir de commande du tout.
Pouvez-vous m'aider...
Merci
SELECT client.id_client , client.nom, max(commande.id_commande)
FROM client
LEFT JOIN commande ON client.id_client = commande.id_client
GROUP BY client.id_client , client.nom
Laurent.
"Valérie S" <SorVal@maleao.fr> wrote in message
news:OXiRJhXxDHA.3196@TK2MSFTNGP11.phx.gbl...
Bonjour à tous,
J'ai 2 tables du style client et commande.
Je voudrais resortir dans une seule requete les infos clients et les infos
de la derniere commande.
Je suis partie sur ça :
SELECT client.id_client , client.nom, commande.id_commande FROM client
LEFT
JOIN commande ON client.id_client = commande.id_client ;
Mais j'obtient toutes les commandes. Je sais pas trop où mettre le
Max(numéro commande) sachant qu'un client peut ne pas avoir de commande du
tout.
SELECT client.id_client , client.nom, max(commande.id_commande) FROM client LEFT JOIN commande ON client.id_client = commande.id_client GROUP BY client.id_client , client.nom
Laurent.
"Valérie S" wrote in message news:
Bonjour à tous, J'ai 2 tables du style client et commande.
Je voudrais resortir dans une seule requete les infos clients et les infos de la derniere commande.
Je suis partie sur ça : SELECT client.id_client , client.nom, commande.id_commande FROM client
LEFT
JOIN commande ON client.id_client = commande.id_client ;
Mais j'obtient toutes les commandes. Je sais pas trop où mettre le Max(numéro commande) sachant qu'un client peut ne pas avoir de commande du tout.
Pouvez-vous m'aider...
Merci
Valérie S
> SELECT client.id_client , client.nom, max(commande.id_commande) FROM client LEFT JOIN commande ON client.id_client = commande.id_client GROUP BY client.id_client , client.nom
Cette solution a déjà été testée mais le soucis c'est que j'ai pleins de champs par exemple commentaire :
SELECT client.id_client , client.nom, commande.commentaire, max(commande.id_commande) FROM client LEFT JOIN commande ON client.id_client = commande.id_client GROUP BY client.id_client , client.nom, commande.commentaire
Et là comme le commentaire de la commande 1 et <> de la 2 alors j'ai de nouveaux toutes les commandes et pas la derniere
> SELECT client.id_client , client.nom, max(commande.id_commande)
FROM client
LEFT JOIN commande ON client.id_client = commande.id_client
GROUP BY client.id_client , client.nom
Cette solution a déjà été testée mais le soucis c'est que j'ai pleins de
champs par exemple commentaire :
SELECT client.id_client , client.nom, commande.commentaire,
max(commande.id_commande)
FROM client
LEFT JOIN commande ON client.id_client = commande.id_client
GROUP BY client.id_client , client.nom, commande.commentaire
Et là comme le commentaire de la commande 1 et <> de la 2 alors j'ai de
nouveaux toutes les commandes et pas la derniere
> SELECT client.id_client , client.nom, max(commande.id_commande) FROM client LEFT JOIN commande ON client.id_client = commande.id_client GROUP BY client.id_client , client.nom
Cette solution a déjà été testée mais le soucis c'est que j'ai pleins de champs par exemple commentaire :
SELECT client.id_client , client.nom, commande.commentaire, max(commande.id_commande) FROM client LEFT JOIN commande ON client.id_client = commande.id_client GROUP BY client.id_client , client.nom, commande.commentaire
Et là comme le commentaire de la commande 1 et <> de la 2 alors j'ai de nouveaux toutes les commandes et pas la derniere
Laurent Moreau
SELECT tmp.*, commande.* FROM ( SELECT client.id_client , client.nom, max(commande.id_commande) FROM client LEFT JOIN commande ON client.id_client = commande.id_client GROUP BY client.id_client , client.nom ) tmp INNER JOIN commande ON tmp.id_commande=commande.id_commande
Laurent.
"Valérie S" wrote in message news:%
> SELECT client.id_client , client.nom, max(commande.id_commande) > FROM client > LEFT JOIN commande ON client.id_client = commande.id_client > GROUP BY client.id_client , client.nom Cette solution a déjà été testée mais le soucis c'est que j'ai pleins de champs par exemple commentaire :
SELECT client.id_client , client.nom, commande.commentaire, max(commande.id_commande) FROM client LEFT JOIN commande ON client.id_client = commande.id_client GROUP BY client.id_client , client.nom, commande.commentaire
Et là comme le commentaire de la commande 1 et <> de la 2 alors j'ai de nouveaux toutes les commandes et pas la derniere
SELECT tmp.*, commande.* FROM
(
SELECT client.id_client , client.nom, max(commande.id_commande)
FROM client
LEFT JOIN commande ON client.id_client = commande.id_client
GROUP BY client.id_client , client.nom
) tmp
INNER JOIN commande ON tmp.id_commande=commande.id_commande
Laurent.
"Valérie S" <SorVal@maleao.fr> wrote in message
news:%23gotZHYxDHA.1484@TK2MSFTNGP09.phx.gbl...
> SELECT client.id_client , client.nom, max(commande.id_commande)
> FROM client
> LEFT JOIN commande ON client.id_client = commande.id_client
> GROUP BY client.id_client , client.nom
Cette solution a déjà été testée mais le soucis c'est que j'ai pleins de
champs par exemple commentaire :
SELECT client.id_client , client.nom, commande.commentaire,
max(commande.id_commande)
FROM client
LEFT JOIN commande ON client.id_client = commande.id_client
GROUP BY client.id_client , client.nom, commande.commentaire
Et là comme le commentaire de la commande 1 et <> de la 2 alors j'ai de
nouveaux toutes les commandes et pas la derniere
SELECT tmp.*, commande.* FROM ( SELECT client.id_client , client.nom, max(commande.id_commande) FROM client LEFT JOIN commande ON client.id_client = commande.id_client GROUP BY client.id_client , client.nom ) tmp INNER JOIN commande ON tmp.id_commande=commande.id_commande
Laurent.
"Valérie S" wrote in message news:%
> SELECT client.id_client , client.nom, max(commande.id_commande) > FROM client > LEFT JOIN commande ON client.id_client = commande.id_client > GROUP BY client.id_client , client.nom Cette solution a déjà été testée mais le soucis c'est que j'ai pleins de champs par exemple commentaire :
SELECT client.id_client , client.nom, commande.commentaire, max(commande.id_commande) FROM client LEFT JOIN commande ON client.id_client = commande.id_client GROUP BY client.id_client , client.nom, commande.commentaire
Et là comme le commentaire de la commande 1 et <> de la 2 alors j'ai de nouveaux toutes les commandes et pas la derniere
Laurent Moreau
J'ai oublié AS id_commande ici:
SELECT client.id_client , client.nom, max(commande.id_commande) AS id_commande
Laurent.
"Valérie S" wrote in message news:%
> SELECT client.id_client , client.nom, max(commande.id_commande) > FROM client > LEFT JOIN commande ON client.id_client = commande.id_client > GROUP BY client.id_client , client.nom Cette solution a déjà été testée mais le soucis c'est que j'ai pleins de champs par exemple commentaire :
SELECT client.id_client , client.nom, commande.commentaire, max(commande.id_commande) FROM client LEFT JOIN commande ON client.id_client = commande.id_client GROUP BY client.id_client , client.nom, commande.commentaire
Et là comme le commentaire de la commande 1 et <> de la 2 alors j'ai de nouveaux toutes les commandes et pas la derniere
J'ai oublié AS id_commande ici:
SELECT client.id_client , client.nom, max(commande.id_commande) AS
id_commande
Laurent.
"Valérie S" <SorVal@maleao.fr> wrote in message
news:%23gotZHYxDHA.1484@TK2MSFTNGP09.phx.gbl...
> SELECT client.id_client , client.nom, max(commande.id_commande)
> FROM client
> LEFT JOIN commande ON client.id_client = commande.id_client
> GROUP BY client.id_client , client.nom
Cette solution a déjà été testée mais le soucis c'est que j'ai pleins de
champs par exemple commentaire :
SELECT client.id_client , client.nom, commande.commentaire,
max(commande.id_commande)
FROM client
LEFT JOIN commande ON client.id_client = commande.id_client
GROUP BY client.id_client , client.nom, commande.commentaire
Et là comme le commentaire de la commande 1 et <> de la 2 alors j'ai de
nouveaux toutes les commandes et pas la derniere
SELECT client.id_client , client.nom, max(commande.id_commande) AS id_commande
Laurent.
"Valérie S" wrote in message news:%
> SELECT client.id_client , client.nom, max(commande.id_commande) > FROM client > LEFT JOIN commande ON client.id_client = commande.id_client > GROUP BY client.id_client , client.nom Cette solution a déjà été testée mais le soucis c'est que j'ai pleins de champs par exemple commentaire :
SELECT client.id_client , client.nom, commande.commentaire, max(commande.id_commande) FROM client LEFT JOIN commande ON client.id_client = commande.id_client GROUP BY client.id_client , client.nom, commande.commentaire
Et là comme le commentaire de la commande 1 et <> de la 2 alors j'ai de nouveaux toutes les commandes et pas la derniere
Laurent Moreau
Et puis c'est un LET JOIN, pas un INNER....
:-)
Laurent.
"Valérie S" wrote in message news:%
> SELECT client.id_client , client.nom, max(commande.id_commande) > FROM client > LEFT JOIN commande ON client.id_client = commande.id_client > GROUP BY client.id_client , client.nom Cette solution a déjà été testée mais le soucis c'est que j'ai pleins de champs par exemple commentaire :
SELECT client.id_client , client.nom, commande.commentaire, max(commande.id_commande) FROM client LEFT JOIN commande ON client.id_client = commande.id_client GROUP BY client.id_client , client.nom, commande.commentaire
Et là comme le commentaire de la commande 1 et <> de la 2 alors j'ai de nouveaux toutes les commandes et pas la derniere
Et puis c'est un LET JOIN, pas un INNER....
:-)
Laurent.
"Valérie S" <SorVal@maleao.fr> wrote in message
news:%23gotZHYxDHA.1484@TK2MSFTNGP09.phx.gbl...
> SELECT client.id_client , client.nom, max(commande.id_commande)
> FROM client
> LEFT JOIN commande ON client.id_client = commande.id_client
> GROUP BY client.id_client , client.nom
Cette solution a déjà été testée mais le soucis c'est que j'ai pleins de
champs par exemple commentaire :
SELECT client.id_client , client.nom, commande.commentaire,
max(commande.id_commande)
FROM client
LEFT JOIN commande ON client.id_client = commande.id_client
GROUP BY client.id_client , client.nom, commande.commentaire
Et là comme le commentaire de la commande 1 et <> de la 2 alors j'ai de
nouveaux toutes les commandes et pas la derniere
> SELECT client.id_client , client.nom, max(commande.id_commande) > FROM client > LEFT JOIN commande ON client.id_client = commande.id_client > GROUP BY client.id_client , client.nom Cette solution a déjà été testée mais le soucis c'est que j'ai pleins de champs par exemple commentaire :
SELECT client.id_client , client.nom, commande.commentaire, max(commande.id_commande) FROM client LEFT JOIN commande ON client.id_client = commande.id_client GROUP BY client.id_client , client.nom, commande.commentaire
Et là comme le commentaire de la commande 1 et <> de la 2 alors j'ai de nouveaux toutes les commandes et pas la derniere
Valérie S
ca l'air génial ta requete. J'essai de suite.
Merci beaucoup "Laurent Moreau" a écrit dans le message de news:brsk61$6ge$
SELECT tmp.*, commande.* FROM ( SELECT client.id_client , client.nom, max(commande.id_commande) FROM client LEFT JOIN commande ON client.id_client = commande.id_client GROUP BY client.id_client , client.nom ) tmp INNER JOIN commande ON tmp.id_commande=commande.id_commande
Laurent.
"Valérie S" wrote in message news:% > > > SELECT client.id_client , client.nom, max(commande.id_commande) > > FROM client > > LEFT JOIN commande ON client.id_client = commande.id_client > > GROUP BY client.id_client , client.nom > Cette solution a déjà été testée mais le soucis c'est que j'ai pleins de > champs par exemple commentaire : > > SELECT client.id_client , client.nom, commande.commentaire, > max(commande.id_commande) > FROM client > LEFT JOIN commande ON client.id_client = commande.id_client > GROUP BY client.id_client , client.nom, commande.commentaire > > > Et là comme le commentaire de la commande 1 et <> de la 2 alors j'ai de > nouveaux toutes les commandes et pas la derniere > >
ca l'air génial ta requete. J'essai de suite.
Merci beaucoup
"Laurent Moreau" <l.moreau@SUPPRIMERCECIsystonic.fr> a écrit dans le message
de news:brsk61$6ge$1@s1.read.news.oleane.net...
SELECT tmp.*, commande.* FROM
(
SELECT client.id_client , client.nom, max(commande.id_commande)
FROM client
LEFT JOIN commande ON client.id_client = commande.id_client
GROUP BY client.id_client , client.nom
) tmp
INNER JOIN commande ON tmp.id_commande=commande.id_commande
Laurent.
"Valérie S" <SorVal@maleao.fr> wrote in message
news:%23gotZHYxDHA.1484@TK2MSFTNGP09.phx.gbl...
>
> > SELECT client.id_client , client.nom, max(commande.id_commande)
> > FROM client
> > LEFT JOIN commande ON client.id_client = commande.id_client
> > GROUP BY client.id_client , client.nom
> Cette solution a déjà été testée mais le soucis c'est que j'ai pleins de
> champs par exemple commentaire :
>
> SELECT client.id_client , client.nom, commande.commentaire,
> max(commande.id_commande)
> FROM client
> LEFT JOIN commande ON client.id_client = commande.id_client
> GROUP BY client.id_client , client.nom, commande.commentaire
>
>
> Et là comme le commentaire de la commande 1 et <> de la 2 alors j'ai de
> nouveaux toutes les commandes et pas la derniere
>
>
Merci beaucoup "Laurent Moreau" a écrit dans le message de news:brsk61$6ge$
SELECT tmp.*, commande.* FROM ( SELECT client.id_client , client.nom, max(commande.id_commande) FROM client LEFT JOIN commande ON client.id_client = commande.id_client GROUP BY client.id_client , client.nom ) tmp INNER JOIN commande ON tmp.id_commande=commande.id_commande
Laurent.
"Valérie S" wrote in message news:% > > > SELECT client.id_client , client.nom, max(commande.id_commande) > > FROM client > > LEFT JOIN commande ON client.id_client = commande.id_client > > GROUP BY client.id_client , client.nom > Cette solution a déjà été testée mais le soucis c'est que j'ai pleins de > champs par exemple commentaire : > > SELECT client.id_client , client.nom, commande.commentaire, > max(commande.id_commande) > FROM client > LEFT JOIN commande ON client.id_client = commande.id_client > GROUP BY client.id_client , client.nom, commande.commentaire > > > Et là comme le commentaire de la commande 1 et <> de la 2 alors j'ai de > nouveaux toutes les commandes et pas la derniere > >