Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

DCount, DMin ou DSum avec une jointure

5 réponses
Avatar
Isa
Bonjour,

Je me demande si c'est possible d'utiliser DMin par exemple sur plusieurs
tables en même temps. Par exemple, je veux trouver la 1ère commande (la date
de commande la + petite) du client nommé "Dupont" (Donc on a besoin d'accéder
à 2 tables : Commande et Client).
Comment puis-je faire ?
D'avance merci.

Isa.

5 réponses

Avatar
3stone
Salut,

Isa wrote:
Je me demande si c'est possible d'utiliser DMin par exemple sur
plusieurs tables en même temps. Par exemple, je veux trouver la 1ère
commande (la date de commande la + petite) du client nommé "Dupont"
(Donc on a besoin d'accéder à 2 tables : Commande et Client).
Comment puis-je faire ?




La série des DCount, DMin etc. sont des fonctions de domaine...
et le domaine peut être une table, mais aussi une requête.

Donc, tu crées une requête qui te rend ce que tu souhaites
et tu utilises une des fonctions pour récupérer le champ.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Michel__D
Bonjour,

Isa a écrit :
Bonjour,

Je me demande si c'est possible d'utiliser DMin par exemple sur plusieurs
tables en même temps. Par exemple, je veux trouver la 1ère commande (la date
de commande la + petite) du client nommé "Dupont" (Donc on a besoin d'accéder
à 2 tables : Commande et Client).
Comment puis-je faire ?
D'avance merci.

Isa.



Tu peux aussi faire autrement, essaye ce qui suit (en mode SQL) :

SELECT T1.* T2.nom
FROM Commande AS T1 INNER JOIN Client AS T2 ON T1.IdClient = T2.IdClient
WHERE T2.nom Like 'Dupont' And
T1.DateCommande = (SELECT TOP 1 DateCommande FROM Commande ORDER BY DateCommande);
Avatar
Isa
Merci pour vos solutions.
Dernière question : y a-t-il un moyen de faire un DISTINCT dans un DCOUNT ?
Merci.

"Michel__D" wrote:

Bonjour,

Isa a écrit :
> Bonjour,
>
> Je me demande si c'est possible d'utiliser DMin par exemple sur plusieurs
> tables en même temps. Par exemple, je veux trouver la 1ère commande (la date
> de commande la + petite) du client nommé "Dupont" (Donc on a besoin d'accéder
> à 2 tables : Commande et Client).
> Comment puis-je faire ?
> D'avance merci.
>
> Isa.

Tu peux aussi faire autrement, essaye ce qui suit (en mode SQL) :

SELECT T1.* T2.nom
FROM Commande AS T1 INNER JOIN Client AS T2 ON T1.IdClient = T2.IdClient
WHERE T2.nom Like 'Dupont' And
T1.DateCommande = (SELECT TOP 1 DateCommande FROM Commande ORDER BY DateCommande);



Avatar
Isa
Je vais préciser ma demande :
Je souhaite savoir combien de clients ont passé au moins une commande ?
Donc j'ai besoin d'un COUNT et d'un DISTINCT mais je n'arrive pas à gérer ma
requête SQL et je ne sais pas si c'est possible de le faire dans un DCOUNT.
Merci.

"Isa" wrote:

Merci pour vos solutions.
Dernière question : y a-t-il un moyen de faire un DISTINCT dans un DCOUNT ?
Merci.

"Michel__D" wrote:

> Bonjour,
>
> Isa a écrit :
> > Bonjour,
> >
> > Je me demande si c'est possible d'utiliser DMin par exemple sur plusieurs
> > tables en même temps. Par exemple, je veux trouver la 1ère commande (la date
> > de commande la + petite) du client nommé "Dupont" (Donc on a besoin d'accéder
> > à 2 tables : Commande et Client).
> > Comment puis-je faire ?
> > D'avance merci.
> >
> > Isa.
>
> Tu peux aussi faire autrement, essaye ce qui suit (en mode SQL) :
>
> SELECT T1.* T2.nom
> FROM Commande AS T1 INNER JOIN Client AS T2 ON T1.IdClient = T2.IdClient
> WHERE T2.nom Like 'Dupont' And
> T1.DateCommande = (SELECT TOP 1 DateCommande FROM Commande ORDER BY DateCommande);
>


Avatar
Michel__D
Bonjour,

Isa a écrit :
Je vais préciser ma demande :
Je souhaite savoir combien de clients ont passé au moins une commande ?
Donc j'ai besoin d'un COUNT et d'un DISTINCT mais je n'arrive pas à gérer ma
requête SQL et je ne sais pas si c'est possible de le faire dans un DCOUNT.
Merci.



Essaye comme ceci, à adapter (mode SQL) :

SELECT T2.Nom, Count(T1.IdCommande) AS NbCommande
FROM Commande AS T1 INNER JOIN Client AS T2 ON T1.IdClient = T2.IdClient
WHERE T1.IdClient IN (SELECT DISTINCT IdClient FROM Commande)
GROUP BY T2.Nom
ORDER BY T2.Nom;


"Isa" wrote:

Merci pour vos solutions.
Dernière question : y a-t-il un moyen de faire un DISTINCT dans un DCOUNT ?
Merci.

"Michel__D" wrote:

Bonjour,

Isa a écrit :
Bonjour,

Je me demande si c'est possible d'utiliser DMin par exemple sur plusieurs
tables en même temps. Par exemple, je veux trouver la 1ère commande (la date
de commande la + petite) du client nommé "Dupont" (Donc on a besoin d'accéder
à 2 tables : Commande et Client).
Comment puis-je faire ?
D'avance merci.

Isa.


Tu peux aussi faire autrement, essaye ce qui suit (en mode SQL) :

SELECT T1.* T2.nom
FROM Commande AS T1 INNER JOIN Client AS T2 ON T1.IdClient = T2.IdClient
WHERE T2.nom Like 'Dupont' And
T1.DateCommande = (SELECT TOP 1 DateCommande FROM Commande ORDER BY DateCommande);