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

Pb requête SQL

5 réponses
Avatar
Caro
Bonjour à tous,

Je souhaite afficher la liste de tous les devis émis, ainsi que les
informations de la dernière relance uniquement (date + observations).
Le pb est que ma requête sort tous les devis avec toutes les relances.
Comment faire ?
Merci d'avance de votre aide

Caro

Ma requête:
Select D.idDevis, R.dateRelance, R.observations
From Devis D
Left join
(
Select idDevis, Max (dateRelance), observations
From Relance
Group by idDevis, observations
) as R on D.idDevis = R.idDevis

5 réponses

Avatar
Med Bouchenafa
SELECT D.idDevis, MAX(R.dateRelance), R.observations
FROM Devis D INNER JOIN Relance R ON D.idDevis = R.idDevis
GROUP BY D.idDevis, R.observations

--
Bien cordialement
Med Bouchenafa

"Caro" wrote in message
news:
Bonjour à tous,

Je souhaite afficher la liste de tous les devis émis, ainsi que les
informations de la dernière relance uniquement (date + observations).
Le pb est que ma requête sort tous les devis avec toutes les relances.
Comment faire ?
Merci d'avance de votre aide

Caro

Ma requête:
Select D.idDevis, R.dateRelance, R.observations
From Devis D
Left join
(
Select idDevis, Max (dateRelance), observations
From Relance
Group by idDevis, observations
) as R on D.idDevis = R.idDevis



Avatar
Caro
Bonjour,
Je voudrais afficher tous les devis, même ceux pour lesquels il n'y a pas de
relance.
Merci quand même de ta réponse

Caro

"Med Bouchenafa" a écrit dans le message de news:

SELECT D.idDevis, MAX(R.dateRelance), R.observations
FROM Devis D INNER JOIN Relance R ON D.idDevis = R.idDevis
GROUP BY D.idDevis, R.observations

--
Bien cordialement
Med Bouchenafa

"Caro" wrote in message
news:
Bonjour à tous,

Je souhaite afficher la liste de tous les devis émis, ainsi que les
informations de la dernière relance uniquement (date + observations).
Le pb est que ma requête sort tous les devis avec toutes les relances.
Comment faire ?
Merci d'avance de votre aide

Caro

Ma requête:
Select D.idDevis, R.dateRelance, R.observations
From Devis D
Left join
(
Select idDevis, Max (dateRelance), observations
From Relance
Group by idDevis, observations
) as R on D.idDevis = R.idDevis







Avatar
Fred BROUARD
alors passe à un left outer join

A +

Caro a écrit:
Bonjour,
Je voudrais afficher tous les devis, même ceux pour lesquels il n'y a pas de
relance.
Merci quand même de ta réponse

Caro

"Med Bouchenafa" a écrit dans le message de news:


SELECT D.idDevis, MAX(R.dateRelance), R.observations
FROM Devis D INNER JOIN Relance R ON D.idDevis = R.idDevis
GROUP BY D.idDevis, R.observations

--
Bien cordialement
Med Bouchenafa

"Caro" wrote in message
news:

Bonjour à tous,

Je souhaite afficher la liste de tous les devis émis, ainsi que les
informations de la dernière relance uniquement (date + observations).
Le pb est que ma requête sort tous les devis avec toutes les relances.
Comment faire ?
Merci d'avance de votre aide

Caro

Ma requête:
Select D.idDevis, R.dateRelance, R.observations
From Devis D
Left join
(
Select idDevis, Max (dateRelance), observations
From Relance
Group by idDevis, observations
) as R on D.idDevis = R.idDevis












--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Caro
Bonjour,
Merci de ta réponse.
En fait, j'ai besoin de lister tous les devis avec la date de la dernière
relance, et l'objet de cette relance.
Or si plusieurs relances ont été faites sur un même devis avec des
observations différentes à chaque fois, j'obtiens des doublons.

Mes données (et aussi ce que ma requête renvoie)
N°Devis Date Objet
100 01/10/2005 proposition
100 10/10/2005 1ère relance
100 20/10/2005 2ème relance
105 05/10/2005 bla bla
105 15/10/2005 bla bla bla

Ce que je souhaiterais avoir:
N°Devis Date Objet
100 20/10/2005 2ème relance
105 15/10/2005 bla bla bla

J'espère avoir été plus claire.

Caro

"Fred BROUARD" a écrit dans le message de news:
eLQ%
alors passe à un left outer join

A +

Caro a écrit:
Bonjour,
Je voudrais afficher tous les devis, même ceux pour lesquels il n'y a pas
de relance.
Merci quand même de ta réponse

Caro

"Med Bouchenafa" a écrit dans le message de
news:

SELECT D.idDevis, MAX(R.dateRelance), R.observations
FROM Devis D INNER JOIN Relance R ON D.idDevis = R.idDevis
GROUP BY D.idDevis, R.observations

--
Bien cordialement
Med Bouchenafa

"Caro" wrote in message
news:

Bonjour à tous,

Je souhaite afficher la liste de tous les devis émis, ainsi que les
informations de la dernière relance uniquement (date + observations).
Le pb est que ma requête sort tous les devis avec toutes les relances.
Comment faire ?
Merci d'avance de votre aide

Caro

Ma requête:
Select D.idDevis, R.dateRelance, R.observations
From Devis D
Left join
(
Select idDevis, Max (dateRelance), observations
From Relance
Group by idDevis, observations
) as R on D.idDevis = R.idDevis












--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************



Avatar
Caro
J'ai finalement utilisé une fonction qui me renvoie la date de la relance
concaténée avec les observations à partir de l'identifiant de la relance.

Caro

"Caro" a écrit dans le message de
news: eZ2wL$
Bonjour,
Merci de ta réponse.
En fait, j'ai besoin de lister tous les devis avec la date de la dernière
relance, et l'objet de cette relance.
Or si plusieurs relances ont été faites sur un même devis avec des
observations différentes à chaque fois, j'obtiens des doublons.

Mes données (et aussi ce que ma requête renvoie)
N°Devis Date Objet
100 01/10/2005 proposition
100 10/10/2005 1ère relance
100 20/10/2005 2ème relance
105 05/10/2005 bla bla
105 15/10/2005 bla bla bla

Ce que je souhaiterais avoir:
N°Devis Date Objet
100 20/10/2005 2ème relance
105 15/10/2005 bla bla bla

J'espère avoir été plus claire.

Caro

"Fred BROUARD" a écrit dans le message de
news: eLQ%
alors passe à un left outer join

A +

Caro a écrit:
Bonjour,
Je voudrais afficher tous les devis, même ceux pour lesquels il n'y a
pas de relance.
Merci quand même de ta réponse

Caro

"Med Bouchenafa" a écrit dans le message de
news:

SELECT D.idDevis, MAX(R.dateRelance), R.observations
FROM Devis D INNER JOIN Relance R ON D.idDevis = R.idDevis
GROUP BY D.idDevis, R.observations

--
Bien cordialement
Med Bouchenafa

"Caro" wrote in message
news:

Bonjour à tous,

Je souhaite afficher la liste de tous les devis émis, ainsi que les
informations de la dernière relance uniquement (date + observations).
Le pb est que ma requête sort tous les devis avec toutes les relances.
Comment faire ?
Merci d'avance de votre aide

Caro

Ma requête:
Select D.idDevis, R.dateRelance, R.observations
From Devis D
Left join
(
Select idDevis, Max (dateRelance), observations
From Relance
Group by idDevis, observations
) as R on D.idDevis = R.idDevis












--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************