Pb sql left outer join
Résolu/Fermé
A voir également:
- Pb sql left outer join
- Left shift clavier - Forum MacOS
- Logiciel sql - Télécharger - Bases de données
- Ou est la touche shift sur un clavier - Forum Jeux vidéo
- Touche Shift gauche ne fonctionne pas toujours - Forum Windows 10
- Left right chanson été ✓ - Forum Musique / Radio / Clip
12 réponses
Bonjour Florence,
Voici ce que devrait être ta requête :
select
c.scodsoc,
c.scodagc,
c.scodcli,
c.sdescli,
c.svil,
d.date_devis,
d.nb_devis
from cli c, tmp_devis d
LEFT OUTER JOIN tmp_devis d ON
d.scodsoc=c.scodsoc and
d.scodagc=c.scodagc and
d.scodcli=c.scodcli
;
En principe, ce devrait être correct. Mais, comme il y a deux ans que je ne l'ai plus fait, alors, si j'ai fait une erreur, pardonne moi.
Georges
Voici ce que devrait être ta requête :
select
c.scodsoc,
c.scodagc,
c.scodcli,
c.sdescli,
c.svil,
d.date_devis,
d.nb_devis
from cli c, tmp_devis d
LEFT OUTER JOIN tmp_devis d ON
d.scodsoc=c.scodsoc and
d.scodagc=c.scodagc and
d.scodcli=c.scodcli
;
En principe, ce devrait être correct. Mais, comme il y a deux ans que je ne l'ai plus fait, alors, si j'ai fait une erreur, pardonne moi.
Georges
Florence, ça m'irrite que ça ne marche pas.
On va recommencer mais sans la close left outer join.
Essaie ceci pour contrôler la requête:
SELECT
c.scodsoc,
c.scodagc,
c.scodcli,
c.sdescli,
c.svil,
d.date_devis,
d.nb_devis
FROM cli c, tmp_devis d
WHERE
d.scodsoc=c.scodsoc and
d.scodagc=c.scodagc and
d.scodcli=c.scodcli;
Fais l'essai par un copier-coller.
Merci
Georges
On va recommencer mais sans la close left outer join.
Essaie ceci pour contrôler la requête:
SELECT
c.scodsoc,
c.scodagc,
c.scodcli,
c.sdescli,
c.svil,
d.date_devis,
d.nb_devis
FROM cli c, tmp_devis d
WHERE
d.scodsoc=c.scodsoc and
d.scodagc=c.scodagc and
d.scodcli=c.scodcli;
Fais l'essai par un copier-coller.
Merci
Georges
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
On va recommencer mais sans la close left outer join.
Il faut lire :On va recommencer mais sans la clause left outer join.
Il faut lire :On va recommencer mais sans la clause left outer join.
Merci de ton aide. Cela me rassure, je ne suis pas la seule à bloquer :-)
cela me donne bien les enreg présent dans les 2 tables
Si je fais cela, cela marche mais les temps de réponse ne sont pas top top
select
c.scodsoc,
c.scodagc,
c.scodcli,
c.sdescli,
c.svil,
(select d.date_devis||';'||d.nb_devis from tmp_devis d
where d.scodsoc=c.scodsoc and d.scodagc=c.scodagc and d.scodcli=c.scodcli)
from
cli c
cela me donne bien les enreg présent dans les 2 tables
Si je fais cela, cela marche mais les temps de réponse ne sont pas top top
select
c.scodsoc,
c.scodagc,
c.scodcli,
c.sdescli,
c.svil,
(select d.date_devis||';'||d.nb_devis from tmp_devis d
where d.scodsoc=c.scodsoc and d.scodagc=c.scodagc and d.scodcli=c.scodcli)
from
cli c
Excuse moi, mais, je suis terriblement têtu.
Veux-tu bien faire un copier-coller de ma syntaxe.
Merci
Georges.
PS. J'adore les bases de données. (C'est vrai).
Veux-tu bien faire un copier-coller de ma syntaxe.
Merci
Georges.
PS. J'adore les bases de données. (C'est vrai).
C'est ce que j'ai fais et cela m'a ramené que les enreg présents dans les 2 tables mais pas ceux qui existe que dans cli.
D'accord, mais cela me permet de vérifier que ma requête fonctionne et que je n'ai plus d'erreur.
Maintenant, on va essayer d'affiner.
Essaie (toujours par copier/coller)
SELECT
c.scodsoc,
c.scodagc,
c.scodcli,
c.sdescli,
c.svil,
d.date_devis,
d.nb_devis
FROM cli c, tmp_devis d
LEFT OUTER JOIN c on
c.scodsoc=d.scodsoc and
c.scodagc=d.scodagc and
c.d.scodcli=d.scodcli;
Merci
Maintenant, on va essayer d'affiner.
Essaie (toujours par copier/coller)
SELECT
c.scodsoc,
c.scodagc,
c.scodcli,
c.sdescli,
c.svil,
d.date_devis,
d.nb_devis
FROM cli c, tmp_devis d
LEFT OUTER JOIN c on
c.scodsoc=d.scodsoc and
c.scodagc=d.scodagc and
c.d.scodcli=d.scodcli;
Merci
j'ai trouvé
select
c.scodsoc,
c.scodagc,
c.scodcli,
c.sdescli,
c.svil,
d.date_devis,
d.nb_devis,
from
cli c, outer tmp_devis d
where
d.scodsoc=c.scodsoc and d.scodagc=c.scodagc and d.scodcli=c.scodcli
merci quand meme de ton aide
select
c.scodsoc,
c.scodagc,
c.scodcli,
c.sdescli,
c.svil,
d.date_devis,
d.nb_devis,
from
cli c, outer tmp_devis d
where
d.scodsoc=c.scodsoc and d.scodagc=c.scodagc and d.scodcli=c.scodcli
merci quand meme de ton aide
29 avril 2011 à 11:00
c.scodsoc,
c.scodagc,
c.scodcli,
c.sdescli,
c.svil,
d.date_devis,
d.nb_devis
from cli c
LEFT OUTER JOIN tmp_devis d ON
c.scodsoc=d.scodsoc and
c.scodagc=d.scodagc and
c.scodcli=d.scodcli
;
Il s'agit d'un jointure à gauche. En gros, tu vas extraire tous les valeurs communes aux 2 tables + les valeurs qui sont dans la table de gauche (cli) mais dans la table de droite (tmp_devis). C'était juste la répartition de tes tables qui n'étaient pas correcte. <table1> LEFT OUTER JOIN <table 2>