J'ai un souci de gestion des outer join dans SQL Server.
J'ai une requete du type :
....
FROM
a -- mvt de stock (par periode comptable)
LEFT OUTER JOIN g -- conditionnements possibles
ON g = a
INNER JOIN h -- articles
ON h = a
INNER JOIN e -- periode comptable (=> date debut/fin)
ON a = e
LEFT OUTER JOIN y -- reference vendable
LEFT OUTER JOIN z -- detail de facture
INNER JOIN w -- entete de facture
LEFT OUTER JOIN r -- avoir
ON
w = r
INNER JOIN v -- code livraison
INNER JOIN u -- adress
INNER JOIN t --pays
ON u = t
ON v = u
ON w = v
INNER JOIN s -- code facturation
ON s = w
ON z = w AND
w between e.debut and e.fin
ON y = z
ON y = a,
en_item_ext b
WHERE
.....
Mon probleme vient de la ligne w between e.debut and e.fin car a cet
endroit, a n'a pas l'air d'etre connu. Or je pensais benoitement que le
contexte passait d'un outer join a un autre. Ca n'a pas l'air.
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
bruno reiter [MVP]
pour etre lisible et efficace, il est bon de séparer les clauses de jointures (liées au join lui meme),des clauses de selection. soit
SELECT cols... FROM T1 JOIN T2 ON x = y AND a = b JOIN T3 ON e = f WHERE r = t AND z BETWEEN q AND u
br
"Dirkpitt" wrote in message news:42d4c738$0$5159$
Bonjour a tous,
J'ai un souci de gestion des outer join dans SQL Server. J'ai une requete du type :
.... FROM a -- mvt de stock (par periode comptable) LEFT OUTER JOIN g -- conditionnements possibles ON g = a INNER JOIN h -- articles ON h = a INNER JOIN e -- periode comptable (=> date debut/fin) ON a = e LEFT OUTER JOIN y -- reference vendable LEFT OUTER JOIN z -- detail de facture INNER JOIN w -- entete de facture LEFT OUTER JOIN r -- avoir ON w = r INNER JOIN v -- code livraison INNER JOIN u -- adress INNER JOIN t --pays ON u = t ON v = u ON w = v INNER JOIN s -- code facturation ON s = w ON z = w AND w between e.debut and e.fin ON y = z ON y = a, en_item_ext b WHERE .....
Mon probleme vient de la ligne w between e.debut and e.fin car a cet endroit, a n'a pas l'air d'etre connu. Or je pensais benoitement que le contexte passait d'un outer join a un autre. Ca n'a pas l'air.
Pouvez vous m'aider ?
Je vous remercie grandement
pour etre lisible et efficace, il est bon de séparer les clauses de
jointures (liées au join lui meme),des clauses de selection.
soit
SELECT cols...
FROM T1
JOIN T2
ON x = y
AND a = b
JOIN T3
ON e = f
WHERE r = t
AND z BETWEEN q AND u
br
"Dirkpitt" <dirpkitt@caths.co.uk> wrote in message
news:42d4c738$0$5159$626a14ce@news.free.fr...
Bonjour a tous,
J'ai un souci de gestion des outer join dans SQL Server.
J'ai une requete du type :
....
FROM
a -- mvt de stock (par periode comptable)
LEFT OUTER JOIN g -- conditionnements possibles
ON g = a
INNER JOIN h -- articles
ON h = a
INNER JOIN e -- periode comptable (=> date debut/fin)
ON a = e
LEFT OUTER JOIN y -- reference vendable
LEFT OUTER JOIN z -- detail de facture
INNER JOIN w -- entete de facture
LEFT OUTER JOIN r -- avoir
ON
w = r
INNER JOIN v -- code livraison
INNER JOIN u -- adress
INNER JOIN t --pays
ON u = t
ON v = u
ON w = v
INNER JOIN s -- code facturation
ON s = w
ON z = w AND
w between e.debut and e.fin
ON y = z
ON y = a,
en_item_ext b
WHERE
.....
Mon probleme vient de la ligne w between e.debut and e.fin car a cet
endroit, a n'a pas l'air d'etre connu. Or je pensais benoitement que le
contexte passait d'un outer join a un autre. Ca n'a pas l'air.
pour etre lisible et efficace, il est bon de séparer les clauses de jointures (liées au join lui meme),des clauses de selection. soit
SELECT cols... FROM T1 JOIN T2 ON x = y AND a = b JOIN T3 ON e = f WHERE r = t AND z BETWEEN q AND u
br
"Dirkpitt" wrote in message news:42d4c738$0$5159$
Bonjour a tous,
J'ai un souci de gestion des outer join dans SQL Server. J'ai une requete du type :
.... FROM a -- mvt de stock (par periode comptable) LEFT OUTER JOIN g -- conditionnements possibles ON g = a INNER JOIN h -- articles ON h = a INNER JOIN e -- periode comptable (=> date debut/fin) ON a = e LEFT OUTER JOIN y -- reference vendable LEFT OUTER JOIN z -- detail de facture INNER JOIN w -- entete de facture LEFT OUTER JOIN r -- avoir ON w = r INNER JOIN v -- code livraison INNER JOIN u -- adress INNER JOIN t --pays ON u = t ON v = u ON w = v INNER JOIN s -- code facturation ON s = w ON z = w AND w between e.debut and e.fin ON y = z ON y = a, en_item_ext b WHERE .....
Mon probleme vient de la ligne w between e.debut and e.fin car a cet endroit, a n'a pas l'air d'etre connu. Or je pensais benoitement que le contexte passait d'un outer join a un autre. Ca n'a pas l'air.
Pouvez vous m'aider ?
Je vous remercie grandement
Patrice
La syntaxe ne me parait pas bonne. Tu as des jointures sans clause ON et plusieurs clauses ON de suite ?? -- Patrice
"Dirkpitt" a écrit dans le message de news:42d4c738$0$5159$
Bonjour a tous,
J'ai un souci de gestion des outer join dans SQL Server. J'ai une requete du type :
.... FROM a -- mvt de stock (par periode comptable) LEFT OUTER JOIN g -- conditionnements possibles ON g = a INNER JOIN h -- articles ON h = a INNER JOIN e -- periode comptable (=> date debut/fin) ON a = e LEFT OUTER JOIN y -- reference vendable LEFT OUTER JOIN z -- detail de facture INNER JOIN w -- entete de facture LEFT OUTER JOIN r -- avoir ON w = r INNER JOIN v -- code livraison INNER JOIN u -- adress INNER JOIN t --pays ON u = t ON v = u ON w = v INNER JOIN s -- code facturation ON s = w ON z = w AND w between e.debut and e.fin ON y = z ON y = a, en_item_ext b WHERE .....
Mon probleme vient de la ligne w between e.debut and e.fin car a cet endroit, a n'a pas l'air d'etre connu. Or je pensais benoitement que le contexte passait d'un outer join a un autre. Ca n'a pas l'air.
Pouvez vous m'aider ?
Je vous remercie grandement
La syntaxe ne me parait pas bonne. Tu as des jointures sans clause ON et
plusieurs clauses ON de suite ??
--
Patrice
"Dirkpitt" <dirpkitt@caths.co.uk> a écrit dans le message de
news:42d4c738$0$5159$626a14ce@news.free.fr...
Bonjour a tous,
J'ai un souci de gestion des outer join dans SQL Server.
J'ai une requete du type :
....
FROM
a -- mvt de stock (par periode comptable)
LEFT OUTER JOIN g -- conditionnements possibles
ON g = a
INNER JOIN h -- articles
ON h = a
INNER JOIN e -- periode comptable (=> date debut/fin)
ON a = e
LEFT OUTER JOIN y -- reference vendable
LEFT OUTER JOIN z -- detail de facture
INNER JOIN w -- entete de facture
LEFT OUTER JOIN r -- avoir
ON
w = r
INNER JOIN v -- code livraison
INNER JOIN u -- adress
INNER JOIN t --pays
ON u = t
ON v = u
ON w = v
INNER JOIN s -- code facturation
ON s = w
ON z = w AND
w between e.debut and e.fin
ON y = z
ON y = a,
en_item_ext b
WHERE
.....
Mon probleme vient de la ligne w between e.debut and e.fin car a cet
endroit, a n'a pas l'air d'etre connu. Or je pensais benoitement que le
contexte passait d'un outer join a un autre. Ca n'a pas l'air.
La syntaxe ne me parait pas bonne. Tu as des jointures sans clause ON et plusieurs clauses ON de suite ?? -- Patrice
"Dirkpitt" a écrit dans le message de news:42d4c738$0$5159$
Bonjour a tous,
J'ai un souci de gestion des outer join dans SQL Server. J'ai une requete du type :
.... FROM a -- mvt de stock (par periode comptable) LEFT OUTER JOIN g -- conditionnements possibles ON g = a INNER JOIN h -- articles ON h = a INNER JOIN e -- periode comptable (=> date debut/fin) ON a = e LEFT OUTER JOIN y -- reference vendable LEFT OUTER JOIN z -- detail de facture INNER JOIN w -- entete de facture LEFT OUTER JOIN r -- avoir ON w = r INNER JOIN v -- code livraison INNER JOIN u -- adress INNER JOIN t --pays ON u = t ON v = u ON w = v INNER JOIN s -- code facturation ON s = w ON z = w AND w between e.debut and e.fin ON y = z ON y = a, en_item_ext b WHERE .....
Mon probleme vient de la ligne w between e.debut and e.fin car a cet endroit, a n'a pas l'air d'etre connu. Or je pensais benoitement que le contexte passait d'un outer join a un autre. Ca n'a pas l'air.
Pouvez vous m'aider ?
Je vous remercie grandement
Fred BROUARD
La clause FROM est un arborescence et les prédicats ON se voient plus calirement attachés à chaque table. Dès que l'on démarrare une jointure externe, il est habituel que toutes les tables qui en dépendent soit en jointure externes.
Si ce que tu veut, c'est tous les mouvements de stock, alors :
FROM A LEFT OUTER JOIN g ON a.??? = g.??? -- !!! erreur probable : inversion de la jointure INNER JOIN h ON a.??? = h.??? INNER JOIN e ON a.??. = e.??? LEFT OUTER JOIN y ON a.??? = y.??? -- !!! erreur probable : inversion de la jointure LEFT OUTER JOIN z ON y.??? = z.??? LEFT OUTER JOIN w ON z.??? = w.??? -- !!! erreur probable : pas d'INNER JOIN derrière une jointure OUTER AND w between e.debut and e.fin LEFT OUTER JOIN r ON w.??? = r.??? LEFT OUTER JOIN s ON w.??? = s.??? -- !!! erreur probable : pas d'INNER JOIN derrière une jointure OUTER LEFT OUTER JOIN v ON w.??? = v.??? -- !!! erreur probable : pas d'INNER JOIN derrière une jointure OUTER LEFT OUTER JOIN u ON v.??? = u.??? -- !!! erreur probable : pas d'INNER JOIN derrière une jointure OUTER LEFT OUTER JOIN t ON u.??? = t.??? -- !!! erreur probable : pas d'INNER JOIN derrière une jointure OUTER
WHERE ...
A lire : http://sqlpro.developpez.com/cours/sqlaz/jointures/#L4.2
A +
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Dirkpitt a écrit:
Bonjour a tous,
J'ai un souci de gestion des outer join dans SQL Server. J'ai une requete du type :
.... FROM a -- mvt de stock (par periode comptable) LEFT OUTER JOIN g -- conditionnements possibles ON g = a INNER JOIN h -- articles ON h = a INNER JOIN e -- periode comptable (=> date debut/fin) ON a = e LEFT OUTER JOIN y -- reference vendable LEFT OUTER JOIN z -- detail de facture INNER JOIN w -- entete de facture LEFT OUTER JOIN r -- avoir ON w = r INNER JOIN v -- code livraison INNER JOIN u -- adress INNER JOIN t --pays ON u = t ON v = u ON w = v INNER JOIN s -- code facturation ON s = w ON z = w AND w between e.debut and e.fin ON y = z ON y = a, en_item_ext b WHERE .....
Mon probleme vient de la ligne w between e.debut and e.fin car a cet endroit, a n'a pas l'air d'etre connu. Or je pensais benoitement que le contexte passait d'un outer join a un autre. Ca n'a pas l'air.
Pouvez vous m'aider ?
Je vous remercie grandement
La clause FROM est un arborescence et les prédicats ON se voient plus calirement
attachés à chaque table.
Dès que l'on démarrare une jointure externe, il est habituel que toutes les
tables qui en dépendent soit en jointure externes.
Si ce que tu veut, c'est tous les mouvements de stock, alors :
FROM A
LEFT OUTER JOIN g ON a.??? = g.??? -- !!!
erreur probable : inversion de la jointure
INNER JOIN h ON a.??? = h.???
INNER JOIN e ON a.??. = e.???
LEFT OUTER JOIN y ON a.??? = y.??? -- !!!
erreur probable : inversion de la jointure
LEFT OUTER JOIN z ON y.??? = z.???
LEFT OUTER JOIN w ON z.??? = w.??? -- !!!
erreur probable : pas d'INNER JOIN derrière une jointure OUTER
AND w between e.debut and e.fin
LEFT OUTER JOIN r ON w.??? = r.???
LEFT OUTER JOIN s ON w.??? = s.??? -- !!!
erreur probable : pas d'INNER JOIN derrière une jointure OUTER
LEFT OUTER JOIN v ON w.??? = v.??? -- !!!
erreur probable : pas d'INNER JOIN derrière une jointure OUTER
LEFT OUTER JOIN u ON v.??? = u.??? -- !!!
erreur probable : pas d'INNER JOIN derrière une jointure OUTER
LEFT OUTER JOIN t ON u.??? = t.??? -- !!!
erreur probable : pas d'INNER JOIN derrière une jointure OUTER
WHERE ...
A lire :
http://sqlpro.developpez.com/cours/sqlaz/jointures/#L4.2
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Dirkpitt a écrit:
Bonjour a tous,
J'ai un souci de gestion des outer join dans SQL Server.
J'ai une requete du type :
....
FROM
a -- mvt de stock (par periode comptable)
LEFT OUTER JOIN g -- conditionnements possibles
ON g = a
INNER JOIN h -- articles
ON h = a
INNER JOIN e -- periode comptable (=> date debut/fin)
ON a = e
LEFT OUTER JOIN y -- reference vendable
LEFT OUTER JOIN z -- detail de facture
INNER JOIN w -- entete de facture
LEFT OUTER JOIN r -- avoir
ON
w = r
INNER JOIN v -- code livraison
INNER JOIN u -- adress
INNER JOIN t --pays
ON u = t
ON v = u
ON w = v
INNER JOIN s -- code facturation
ON s = w
ON z = w AND
w between e.debut and e.fin
ON y = z
ON y = a,
en_item_ext b
WHERE
.....
Mon probleme vient de la ligne w between e.debut and e.fin car a cet
endroit, a n'a pas l'air d'etre connu. Or je pensais benoitement que le
contexte passait d'un outer join a un autre. Ca n'a pas l'air.
La clause FROM est un arborescence et les prédicats ON se voient plus calirement attachés à chaque table. Dès que l'on démarrare une jointure externe, il est habituel que toutes les tables qui en dépendent soit en jointure externes.
Si ce que tu veut, c'est tous les mouvements de stock, alors :
FROM A LEFT OUTER JOIN g ON a.??? = g.??? -- !!! erreur probable : inversion de la jointure INNER JOIN h ON a.??? = h.??? INNER JOIN e ON a.??. = e.??? LEFT OUTER JOIN y ON a.??? = y.??? -- !!! erreur probable : inversion de la jointure LEFT OUTER JOIN z ON y.??? = z.??? LEFT OUTER JOIN w ON z.??? = w.??? -- !!! erreur probable : pas d'INNER JOIN derrière une jointure OUTER AND w between e.debut and e.fin LEFT OUTER JOIN r ON w.??? = r.??? LEFT OUTER JOIN s ON w.??? = s.??? -- !!! erreur probable : pas d'INNER JOIN derrière une jointure OUTER LEFT OUTER JOIN v ON w.??? = v.??? -- !!! erreur probable : pas d'INNER JOIN derrière une jointure OUTER LEFT OUTER JOIN u ON v.??? = u.??? -- !!! erreur probable : pas d'INNER JOIN derrière une jointure OUTER LEFT OUTER JOIN t ON u.??? = t.??? -- !!! erreur probable : pas d'INNER JOIN derrière une jointure OUTER
WHERE ...
A lire : http://sqlpro.developpez.com/cours/sqlaz/jointures/#L4.2
A +
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Dirkpitt a écrit:
Bonjour a tous,
J'ai un souci de gestion des outer join dans SQL Server. J'ai une requete du type :
.... FROM a -- mvt de stock (par periode comptable) LEFT OUTER JOIN g -- conditionnements possibles ON g = a INNER JOIN h -- articles ON h = a INNER JOIN e -- periode comptable (=> date debut/fin) ON a = e LEFT OUTER JOIN y -- reference vendable LEFT OUTER JOIN z -- detail de facture INNER JOIN w -- entete de facture LEFT OUTER JOIN r -- avoir ON w = r INNER JOIN v -- code livraison INNER JOIN u -- adress INNER JOIN t --pays ON u = t ON v = u ON w = v INNER JOIN s -- code facturation ON s = w ON z = w AND w between e.debut and e.fin ON y = z ON y = a, en_item_ext b WHERE .....
Mon probleme vient de la ligne w between e.debut and e.fin car a cet endroit, a n'a pas l'air d'etre connu. Or je pensais benoitement que le contexte passait d'un outer join a un autre. Ca n'a pas l'air.