Rechercher : dans
Par :

Pb sql left outer join

Dernière réponse le 2 oct 2008 à 14:18:32 florence, le 2 oct 2008 à 08:48:58 
 Signaler ce message aux modérateurs

Bonjour,

je voudrais extraire les enregistrements de la table cli + 2 champs de la table tmp_devis si ceux ci existent (null sinon)
ma joiture se fait sur 3 champs (scodsoc, scodagc, scodcli)

Ma requete est la suivante mais j'ai toujours sql error
select
cli.scodsoc,
cli.scodagc,
cli.scodcli,
cli.sdescli,
cli.svil,
tmp_devis.date_devis,
tmp_devis.nb_devis
from
LEFT OUTER JOIN tmp_devis ON
cli.scodsoc=tmp_devis.scodsoc and
cli.scodagc=tmp_devis.scodagc and
cli.scodcli=tmp_devis.scodcli
;

Merci

Configuration: informix
unix

Meilleures réponses pour « pb sql left outer join » dans :
Synchroniser ses contacts iPhone/iPod touch avec Outlook VoirLorsque vous essayez de synchroniser les contacts, la messagerie et/ou le calendrier de votre iPhone/iPod touch sur un PC avec Outlook, iTunes affiche le message d'erreur suivant : Soit il n'existe pas de client de messagerie par défaut, soit...
[Outlook] Sauvegarder le carnet d'adresses (fichier wab) VoirSauvegarde du carnet d'adresse d'Outlook Méthode n°1 Pour sauvegarder le carnet d'adresses de Microsoft Outlook ou Microsoft Outlook Express, il est nécessaire dans un premier temps de localiser le dossier dans lequel il est situé. Le carnet...
[Yahoo] Configuration (POP3) pour Outlook, Eudora, Thunderbird… VoirIl est possible d'utiliser une boîte Yahoo!Mail avec un logiciel de messagerie (Outlook, Thunderbird...) mais pour cela, 2 solutions : SOLUTION 1 : Avec l'activation de l'option "Yahoo Direct" SOLUTION 2 : Sans activer l'option "Yahoo...
SQL - Création de table VoirLe SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE...
Le langage SQL VoirQu'appelle-t-on SQL? SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage de définition de données (LDD, ou en anglais DDL Data Definition Language), un langage de manipulation de données (LMD, ou en anglais DML,...
SQL - Commande SELECT VoirLe langage de manipulation de données Le SQL est à la fois un langage de manipulation de données et un langage de définition de données. Toutefois, la définition de données est l'oeuvre de l'administrateur de la base de données, c'est pourquoi la...

1

Gere, le 2 oct 2008 à 09:10:43

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

Répondre à Gere

2

florence, le 2 oct 2008 à 09:25:18

Merci georges,

J'ai essayé mais j'ai toujours la même erreur

Répondre à florence

3

Gere, le 2 oct 2008 à 09:42:38

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

Répondre à Gere

4

Gere, le 2 oct 2008 à 09:44:17

Excuse la faute d'orthographe "close" il faut lire "clause".

Georges

Répondre à Gere

5

florence, le 2 oct 2008 à 10:29:56

??

Répondre à florence

6

Gere, le 2 oct 2008 à 10:32:42

On va recommencer mais sans la close left outer join.

Il faut lire :On va recommencer mais sans la clause left outer join.

Répondre à Gere

7

florence, le 2 oct 2008 à 10:34:14

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

Répondre à florence

8

Gere, le 2 oct 2008 à 10:50:29

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).

Répondre à Gere

9

florence, le 2 oct 2008 à 11:07:04

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.

Répondre à florence

10

Gere, le 2 oct 2008 à 11:22:20

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

Répondre à Gere

11

florence, le 2 oct 2008 à 14:12:50

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

Répondre à florence

12

 Gere, le 2 oct 2008 à 14:18:32

Je suis ravi que tu aies trouvé la solution.
Bravo.

Bonne continuation.

Georges

Répondre à Gere