J'espère ne pas être trop HS... mais je n'ai pas trouvé de NewsGroup où
parler de celà...
Sur Excel, j'ai une macro qui se connecte à une base de donnée...
Req = "SELECT DISTINCT dossiers.NomDossier, dossiers.* " & Chr(10) & _
"FROM dossiers, Missions WHERE Dossiers.Noeg = Missions.Noreg"
Req = Req & " AND ((Missions.Code = 'T' OR Missions.Code = 'R') OR
Dossiers.Type = 'P')"
Mon problème est que dans le cas où j'aurais un dossier dont le Type est 'P'
celui ci ne ressort pas... alors que j'ai bien des dossiers 'P' dans ma
table dossiers... Par contre, ces dossiers de Type 'P' ne se trouvent pas
dans la table Missions... d'où le fait que la jointure entre Dossiers et
Missions doit, de fait, exclure les dossiers qui n'y apparaissent pas...
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
Jean-Claude
"HD" a écrit dans le message de news: i99nqm$1atk$
Bonjour,
J'espère ne pas être trop HS... mais je n'ai pas trouvé de NewsGroup où parler de celà...
Sur Excel, j'ai une macro qui se connecte à une base de donnée...
Req = "SELECT DISTINCT dossiers.NomDossier, dossiers.* " & Chr(10) & _ "FROM dossiers, Missions WHERE Dossiers.Noeg = Missions.Noreg" Req = Req & " AND ((Missions.Code = 'T' OR Missions.Code = 'R') OR Dossiers.Type = 'P')"
Mon problème est que dans le cas où j'aurais un dossier dont le Type est 'P' celui ci ne ressort pas... alors que j'ai bien des dossiers 'P' dans ma table dossiers... Par contre, ces dossiers de Type 'P' ne se trouvent pas dans la table Missions... d'où le fait que la jointure entre Dossiers et Missions doit, de fait, exclure les dossiers qui n'y apparaissent pas...
Merci d'avance pour votre aide -- @+ HD
Bonjour,
utiliser une jointure externe, quelque chose du genre :
SELECT DISTINCT dossiers.* FROM dossiers LEFT OUTER JOIN Missions ON Dossiers.Noeg = Missions.Noreg WHERE (Dossiers.Type = 'P') OR ((Dossiers.Type <> 'P') AND (Missions.Code = 'T' OR Missions.Code = 'R'))
ou bien une union :
SELECT DISTINCT dossiers.* FROM dossiers WHERE Dossiers.Type = 'P' UNION SELECT DISTINCT dossiers.* FROM dossiers JOIN Missions ON Dossiers.Noeg = Missions.Noreg WHERE (Dossiers.Type <> 'P') AND (Missions.Code = 'T' OR Missions.Code = 'R')
JC
"HD" <hd@anti.spam.fr> a écrit dans le message de news:
i99nqm$1atk$1@saria.nerim.net...
Bonjour,
J'espère ne pas être trop HS... mais je n'ai pas trouvé de NewsGroup où
parler de celà...
Sur Excel, j'ai une macro qui se connecte à une base de donnée...
Req = "SELECT DISTINCT dossiers.NomDossier, dossiers.* " & Chr(10) & _
"FROM dossiers, Missions WHERE Dossiers.Noeg = Missions.Noreg"
Req = Req & " AND ((Missions.Code = 'T' OR Missions.Code = 'R') OR
Dossiers.Type = 'P')"
Mon problème est que dans le cas où j'aurais un dossier dont le Type est
'P' celui ci ne ressort pas... alors que j'ai bien des dossiers 'P' dans
ma table dossiers... Par contre, ces dossiers de Type 'P' ne se trouvent
pas dans la table Missions... d'où le fait que la jointure entre Dossiers
et Missions doit, de fait, exclure les dossiers qui n'y apparaissent
pas...
Merci d'avance pour votre aide
--
@+
HD
Bonjour,
utiliser une jointure externe, quelque chose du genre :
SELECT DISTINCT dossiers.*
FROM dossiers LEFT OUTER JOIN Missions
ON Dossiers.Noeg = Missions.Noreg
WHERE (Dossiers.Type = 'P')
OR ((Dossiers.Type <> 'P') AND (Missions.Code = 'T' OR Missions.Code = 'R'))
ou bien une union :
SELECT DISTINCT dossiers.*
FROM dossiers WHERE Dossiers.Type = 'P'
UNION
SELECT DISTINCT dossiers.*
FROM dossiers JOIN Missions ON Dossiers.Noeg = Missions.Noreg
WHERE (Dossiers.Type <> 'P') AND (Missions.Code = 'T' OR Missions.Code =
'R')
"HD" a écrit dans le message de news: i99nqm$1atk$
Bonjour,
J'espère ne pas être trop HS... mais je n'ai pas trouvé de NewsGroup où parler de celà...
Sur Excel, j'ai une macro qui se connecte à une base de donnée...
Req = "SELECT DISTINCT dossiers.NomDossier, dossiers.* " & Chr(10) & _ "FROM dossiers, Missions WHERE Dossiers.Noeg = Missions.Noreg" Req = Req & " AND ((Missions.Code = 'T' OR Missions.Code = 'R') OR Dossiers.Type = 'P')"
Mon problème est que dans le cas où j'aurais un dossier dont le Type est 'P' celui ci ne ressort pas... alors que j'ai bien des dossiers 'P' dans ma table dossiers... Par contre, ces dossiers de Type 'P' ne se trouvent pas dans la table Missions... d'où le fait que la jointure entre Dossiers et Missions doit, de fait, exclure les dossiers qui n'y apparaissent pas...
Merci d'avance pour votre aide -- @+ HD
Bonjour,
utiliser une jointure externe, quelque chose du genre :
SELECT DISTINCT dossiers.* FROM dossiers LEFT OUTER JOIN Missions ON Dossiers.Noeg = Missions.Noreg WHERE (Dossiers.Type = 'P') OR ((Dossiers.Type <> 'P') AND (Missions.Code = 'T' OR Missions.Code = 'R'))
ou bien une union :
SELECT DISTINCT dossiers.* FROM dossiers WHERE Dossiers.Type = 'P' UNION SELECT DISTINCT dossiers.* FROM dossiers JOIN Missions ON Dossiers.Noeg = Missions.Noreg WHERE (Dossiers.Type <> 'P') AND (Missions.Code = 'T' OR Missions.Code = 'R')
JC
HD
Un grand MERCI à vous Jean-Claude... J'ai pris la solution de l' UNION et ça fonctionne bien.
-- @+ HD
Un grand MERCI à vous Jean-Claude... J'ai pris la solution de l' UNION et ça
fonctionne bien.