J'ai beaucoup de mal avec la syntaxe SQL et HF7 avec les jointures
J'ai une Table CLIENTS et CAT ( code libelle ) Un clients peut avoir
une catégorie ( bon , pas bon etc )
Liste des clients avec la catégorie : Pas de problèmes:
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2,
clients.date_fin_rth, cat.libelle
FROM clients LEFT JOIN cat ON cat.code=clients.cat
Par contre j'ai une seconde table liée à Client : CAT2( code, libelle ) du
même type
Et la je coince , impossible de faire ma reqêtte ( avec double jointure)
( je sais faire avec des clauses Where et And mais )
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2,
clients.date_fin_rth, cat.libelle, cat2.libelle
FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2
LEFT JOIN cat ON cat.code=clients.cat
Cette syntaxe ne fonctionne pas, j'ai essayé de plusieurs eplacement de
parenthèses mais
je n'y arive pas.
Qui peut me donner un coup de main pour ma syntaxe de jointures ?
******
Sinon avec clause Where cela fonctionne
SELECT Clients.Nom AS Nom,
Clients.prenom AS prenom,
cat.libelle AS libelle1,
cat2.libelle AS libelle2,
Clients.ville AS ville
FROM cat, cat2, Clients
WHERE Clients.cat = cat.code
AND Clients.cat2= cat2.code
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
mat
sebNews wrote:
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2 LEFT JOIN cat ON cat.code=clients.cat
Cette syntaxe ne fonctionne pas, j'ai essayé de plusieurs eplacement de parenthèses mais je n'y arive pas.
Qui peut me donner un coup de main pour ma syntaxe de jointures ?
****** Sinon avec clause Where cela fonctionne
SELECT Clients.Nom AS Nom, Clients.prenom AS prenom, cat.libelle AS libelle1, cat2.libelle AS libelle2, Clients.ville AS ville FROM cat, cat2, Clients WHERE Clients.cat = cat.code AND Clients.cat2 > cat2.code
Il y a plusieurs possibilités (voir l'aide pour la syntaxe).
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2, clients LEFT JOIN cat ON cat.code=clients.cat
ou bien
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2, cat RIGHT JOIN clients ON cat.code=clients.cat
devraient marcher.
sebNews wrote:
SELECT clients.code_cli, clients.Nom, clients.adresse1,
clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle
FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2 LEFT JOIN
cat ON cat.code=clients.cat
Cette syntaxe ne fonctionne pas, j'ai essayé de plusieurs eplacement
de parenthèses mais je n'y arive pas.
Qui peut me donner un coup de main pour ma syntaxe de jointures ?
****** Sinon avec clause Where cela fonctionne
SELECT Clients.Nom AS Nom, Clients.prenom AS prenom, cat.libelle AS
libelle1, cat2.libelle AS libelle2, Clients.ville AS ville FROM cat,
cat2, Clients WHERE Clients.cat = cat.code AND Clients.cat2 > cat2.code
Il y a plusieurs possibilités (voir l'aide pour la syntaxe).
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2,
clients.date_fin_rth, cat.libelle, cat2.libelle
FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2,
clients LEFT JOIN cat ON cat.code=clients.cat
ou bien
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2,
clients.date_fin_rth, cat.libelle, cat2.libelle
FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2,
cat RIGHT JOIN clients ON cat.code=clients.cat
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2 LEFT JOIN cat ON cat.code=clients.cat
Cette syntaxe ne fonctionne pas, j'ai essayé de plusieurs eplacement de parenthèses mais je n'y arive pas.
Qui peut me donner un coup de main pour ma syntaxe de jointures ?
****** Sinon avec clause Where cela fonctionne
SELECT Clients.Nom AS Nom, Clients.prenom AS prenom, cat.libelle AS libelle1, cat2.libelle AS libelle2, Clients.ville AS ville FROM cat, cat2, Clients WHERE Clients.cat = cat.code AND Clients.cat2 > cat2.code
Il y a plusieurs possibilités (voir l'aide pour la syntaxe).
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2, clients LEFT JOIN cat ON cat.code=clients.cat
ou bien
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2, cat RIGHT JOIN clients ON cat.code=clients.cat
devraient marcher.
mat
mat wrote:
Il y a plusieurs possibilités (voir l'aide pour la syntaxe).
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2, clients LEFT JOIN cat ON cat.code=clients.cat
ou bien
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2, cat RIGHT JOIN clients ON cat.code=clients.cat
ouuuf... faut plutôt oublier ce conseil :-)
Je n'ai pas fait assez attention: LEFT et RIGHT ne sont utilisés que dans des OUTER JOINS. Pour un left join utiliser INNER JOIN.
Conclusion:
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle FROM clients INNER JOIN cat2 ON cat2.code=clients.cat2, clients INNER JOIN cat ON cat.code=clients.cat
mat wrote:
Il y a plusieurs possibilités (voir l'aide pour la syntaxe).
SELECT clients.code_cli, clients.Nom, clients.adresse1,
clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle
FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2, clients LEFT
JOIN cat ON cat.code=clients.cat
ou bien
SELECT clients.code_cli, clients.Nom, clients.adresse1,
clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle
FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2, cat RIGHT
JOIN clients ON cat.code=clients.cat
ouuuf... faut plutôt oublier ce conseil :-)
Je n'ai pas fait assez attention:
LEFT et RIGHT ne sont utilisés que dans des OUTER JOINS.
Pour un left join utiliser INNER JOIN.
Conclusion:
SELECT clients.code_cli, clients.Nom, clients.adresse1,
clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle
FROM clients INNER JOIN cat2 ON cat2.code=clients.cat2,
clients INNER JOIN cat ON cat.code=clients.cat
Il y a plusieurs possibilités (voir l'aide pour la syntaxe).
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2, clients LEFT JOIN cat ON cat.code=clients.cat
ou bien
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2, cat RIGHT JOIN clients ON cat.code=clients.cat
ouuuf... faut plutôt oublier ce conseil :-)
Je n'ai pas fait assez attention: LEFT et RIGHT ne sont utilisés que dans des OUTER JOINS. Pour un left join utiliser INNER JOIN.
Conclusion:
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle FROM clients INNER JOIN cat2 ON cat2.code=clients.cat2, clients INNER JOIN cat ON cat.code=clients.cat
sebNews
Ok merci de la réponse je vais essayer cette syntaxe C'est du SQL2 standard ?
Sébastien
"mat" a écrit dans le message de news:41dc2618$
mat wrote: > Il y a plusieurs possibilités (voir l'aide pour la syntaxe). > > SELECT clients.code_cli, clients.Nom, clients.adresse1, > clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle > FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2, clients LEFT > JOIN cat ON cat.code=clients.cat > > ou bien > > SELECT clients.code_cli, clients.Nom, clients.adresse1, > clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle > FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2, cat RIGHT > JOIN clients ON cat.code=clients.cat
ouuuf... faut plutôt oublier ce conseil :-)
Je n'ai pas fait assez attention: LEFT et RIGHT ne sont utilisés que dans des OUTER JOINS. Pour un left join utiliser INNER JOIN.
Conclusion:
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle FROM clients INNER JOIN cat2 ON cat2.code=clients.cat2, clients INNER JOIN cat ON cat.code=clients.cat
Ok merci de la réponse je vais essayer cette syntaxe
C'est du SQL2 standard ?
Sébastien
"mat" <NoSpam-mnobs@bluemail.ch> a écrit dans le message de
news:41dc2618$1_2@news.bluewin.ch...
mat wrote:
> Il y a plusieurs possibilités (voir l'aide pour la syntaxe).
>
> SELECT clients.code_cli, clients.Nom, clients.adresse1,
> clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle
> FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2, clients LEFT
> JOIN cat ON cat.code=clients.cat
>
> ou bien
>
> SELECT clients.code_cli, clients.Nom, clients.adresse1,
> clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle
> FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2, cat RIGHT
> JOIN clients ON cat.code=clients.cat
ouuuf... faut plutôt oublier ce conseil :-)
Je n'ai pas fait assez attention:
LEFT et RIGHT ne sont utilisés que dans des OUTER JOINS.
Pour un left join utiliser INNER JOIN.
Conclusion:
SELECT clients.code_cli, clients.Nom, clients.adresse1,
clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle
FROM clients INNER JOIN cat2 ON cat2.code=clients.cat2,
clients INNER JOIN cat ON cat.code=clients.cat
Ok merci de la réponse je vais essayer cette syntaxe C'est du SQL2 standard ?
Sébastien
"mat" a écrit dans le message de news:41dc2618$
mat wrote: > Il y a plusieurs possibilités (voir l'aide pour la syntaxe). > > SELECT clients.code_cli, clients.Nom, clients.adresse1, > clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle > FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2, clients LEFT > JOIN cat ON cat.code=clients.cat > > ou bien > > SELECT clients.code_cli, clients.Nom, clients.adresse1, > clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle > FROM clients LEFT JOIN cat2 ON cat2.code=clients.cat2, cat RIGHT > JOIN clients ON cat.code=clients.cat
ouuuf... faut plutôt oublier ce conseil :-)
Je n'ai pas fait assez attention: LEFT et RIGHT ne sont utilisés que dans des OUTER JOINS. Pour un left join utiliser INNER JOIN.
Conclusion:
SELECT clients.code_cli, clients.Nom, clients.adresse1, clients.adresse2, clients.date_fin_rth, cat.libelle, cat2.libelle FROM clients INNER JOIN cat2 ON cat2.code=clients.cat2, clients INNER JOIN cat ON cat.code=clients.cat
mat
sebNews wrote:
Ok merci de la réponse je vais essayer cette syntaxe C'est du SQL2 standard ?
Je regrette, je ne suis pas un expert en la matière. J'ai vu quelque part que WD correspond à SQL92 mais j'ai l'impression que tous les éditeurs ont leur propres interpretations. J'utilise prèsque toujours cette syntaxe puisqu'elle est plus rapide que des liaisons par WHERE dans mes requêtes multi-fichiers.
sebNews wrote:
Ok merci de la réponse je vais essayer cette syntaxe C'est du SQL2
standard ?
Je regrette, je ne suis pas un expert en la matière. J'ai vu quelque
part que WD correspond à SQL92 mais j'ai l'impression que tous les
éditeurs ont leur propres interpretations. J'utilise prèsque toujours
cette syntaxe puisqu'elle est plus rapide que des liaisons par WHERE
dans mes requêtes multi-fichiers.
Ok merci de la réponse je vais essayer cette syntaxe C'est du SQL2 standard ?
Je regrette, je ne suis pas un expert en la matière. J'ai vu quelque part que WD correspond à SQL92 mais j'ai l'impression que tous les éditeurs ont leur propres interpretations. J'utilise prèsque toujours cette syntaxe puisqu'elle est plus rapide que des liaisons par WHERE dans mes requêtes multi-fichiers.
sebNews
Ok merci j'ai fait un essai et cela fonctionne par contre cela ne me sort pas les clients qui n'ont pas de correspondance dans les tables catégorie1 ou catégorie2
J'ai résolu le problème en mettant un code 0 dans les tables CAT1 et CAT2 et des valeurs par défaut à 0 dans le fichiers clients.
Mais peut t on en SQL sortir : " La liste des clients avec leur catégorie y compris ceux dont la catégorie n'est pas saisie " ?
Sébastien
"mat" a écrit dans le message de news:41dd1278$
sebNews wrote: > Ok merci de la réponse je vais essayer cette syntaxe C'est du SQL2 > standard ?
Je regrette, je ne suis pas un expert en la matière. J'ai vu quelque part que WD correspond à SQL92 mais j'ai l'impression que tous les éditeurs ont leur propres interpretations. J'utilise prèsque toujours cette syntaxe puisqu'elle est plus rapide que des liaisons par WHERE dans mes requêtes multi-fichiers.
Ok merci
j'ai fait un essai et cela fonctionne
par contre cela ne me sort pas les clients
qui n'ont pas de correspondance dans les tables
catégorie1 ou catégorie2
J'ai résolu le problème en mettant un code 0 dans les
tables CAT1 et CAT2 et des valeurs par défaut à 0
dans le fichiers clients.
Mais peut t on en SQL sortir :
" La liste des clients avec leur catégorie y compris ceux dont la catégorie
n'est pas saisie " ?
Sébastien
"mat" <NoSpam-mnobs@bluemail.ch> a écrit dans le message de
news:41dd1278$1_1@news.bluewin.ch...
sebNews wrote:
> Ok merci de la réponse je vais essayer cette syntaxe C'est du SQL2
> standard ?
Je regrette, je ne suis pas un expert en la matière. J'ai vu quelque
part que WD correspond à SQL92 mais j'ai l'impression que tous les
éditeurs ont leur propres interpretations. J'utilise prèsque toujours
cette syntaxe puisqu'elle est plus rapide que des liaisons par WHERE
dans mes requêtes multi-fichiers.
Ok merci j'ai fait un essai et cela fonctionne par contre cela ne me sort pas les clients qui n'ont pas de correspondance dans les tables catégorie1 ou catégorie2
J'ai résolu le problème en mettant un code 0 dans les tables CAT1 et CAT2 et des valeurs par défaut à 0 dans le fichiers clients.
Mais peut t on en SQL sortir : " La liste des clients avec leur catégorie y compris ceux dont la catégorie n'est pas saisie " ?
Sébastien
"mat" a écrit dans le message de news:41dd1278$
sebNews wrote: > Ok merci de la réponse je vais essayer cette syntaxe C'est du SQL2 > standard ?
Je regrette, je ne suis pas un expert en la matière. J'ai vu quelque part que WD correspond à SQL92 mais j'ai l'impression que tous les éditeurs ont leur propres interpretations. J'utilise prèsque toujours cette syntaxe puisqu'elle est plus rapide que des liaisons par WHERE dans mes requêtes multi-fichiers.
roumegou
sebNews avait soumis l'idée :
Ok merci j'ai fait un essai et cela fonctionne par contre cela ne me sort pas les clients qui n'ont pas de correspondance dans les tables catégorie1 ou catégorie2
J'ai résolu le problème en mettant un code 0 dans les tables CAT1 et CAT2 et des valeurs par défaut à 0 dans le fichiers clients.
Mais peut t on en SQL sortir : " La liste des clients avec leur catégorie y compris ceux dont la catégorie n'est pas saisie " ?
c'est le left outer join (à la diff du inner join)
si tu veux tous les clients meme ceux qui n'ont pas de catégorie select client.nom, client.cat_id,categorie.libelle from client left outer join catgorie on client.cat_idÊtegorie.cat_id si tu ne veux que les clients qui ont une catégorie select client.nom, client.cat_id,categorie.libelle from client inner join catgorie on client.cat_idÊtegorie.cat_id si tu veux que les clients qui n'ont pas de catégorie select client.nom, client.cat_id,categorie.libelle from client inner join catgorie on client.cat_idÊtegorie.cat_id and categorie.libelle is null
A adapter pour du HF
Sébastien
"mat" a écrit dans le message de news:41dd1278$
sebNews wrote:
Ok merci de la réponse je vais essayer cette syntaxe C'est du SQL2 standard ?
Je regrette, je ne suis pas un expert en la matière. J'ai vu quelque part que WD correspond à SQL92 mais j'ai l'impression que tous les éditeurs ont leur propres interpretations. J'utilise prèsque toujours cette syntaxe puisqu'elle est plus rapide que des liaisons par WHERE dans mes requêtes multi-fichiers.
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
sebNews avait soumis l'idée :
Ok merci
j'ai fait un essai et cela fonctionne
par contre cela ne me sort pas les clients
qui n'ont pas de correspondance dans les tables
catégorie1 ou catégorie2
J'ai résolu le problème en mettant un code 0 dans les
tables CAT1 et CAT2 et des valeurs par défaut à 0
dans le fichiers clients.
Mais peut t on en SQL sortir :
" La liste des clients avec leur catégorie y compris ceux dont la catégorie
n'est pas saisie " ?
c'est le left outer join (à la diff du inner join)
si tu veux tous les clients meme ceux qui n'ont pas de catégorie
select client.nom, client.cat_id,categorie.libelle from client left
outer join catgorie on client.cat_idÊtegorie.cat_id
si tu ne veux que les clients qui ont une catégorie
select client.nom, client.cat_id,categorie.libelle from client inner
join catgorie on client.cat_idÊtegorie.cat_id
si tu veux que les clients qui n'ont pas de catégorie
select client.nom, client.cat_id,categorie.libelle from client inner
join catgorie on client.cat_idÊtegorie.cat_id
and categorie.libelle is null
A adapter pour du HF
Sébastien
"mat" <NoSpam-mnobs@bluemail.ch> a écrit dans le message de
news:41dd1278$1_1@news.bluewin.ch...
sebNews wrote:
Ok merci de la réponse je vais essayer cette syntaxe C'est du SQL2
standard ?
Je regrette, je ne suis pas un expert en la matière. J'ai vu quelque
part que WD correspond à SQL92 mais j'ai l'impression que tous les
éditeurs ont leur propres interpretations. J'utilise prèsque toujours
cette syntaxe puisqu'elle est plus rapide que des liaisons par WHERE
dans mes requêtes multi-fichiers.
--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Ok merci j'ai fait un essai et cela fonctionne par contre cela ne me sort pas les clients qui n'ont pas de correspondance dans les tables catégorie1 ou catégorie2
J'ai résolu le problème en mettant un code 0 dans les tables CAT1 et CAT2 et des valeurs par défaut à 0 dans le fichiers clients.
Mais peut t on en SQL sortir : " La liste des clients avec leur catégorie y compris ceux dont la catégorie n'est pas saisie " ?
c'est le left outer join (à la diff du inner join)
si tu veux tous les clients meme ceux qui n'ont pas de catégorie select client.nom, client.cat_id,categorie.libelle from client left outer join catgorie on client.cat_idÊtegorie.cat_id si tu ne veux que les clients qui ont une catégorie select client.nom, client.cat_id,categorie.libelle from client inner join catgorie on client.cat_idÊtegorie.cat_id si tu veux que les clients qui n'ont pas de catégorie select client.nom, client.cat_id,categorie.libelle from client inner join catgorie on client.cat_idÊtegorie.cat_id and categorie.libelle is null
A adapter pour du HF
Sébastien
"mat" a écrit dans le message de news:41dd1278$
sebNews wrote:
Ok merci de la réponse je vais essayer cette syntaxe C'est du SQL2 standard ?
Je regrette, je ne suis pas un expert en la matière. J'ai vu quelque part que WD correspond à SQL92 mais j'ai l'impression que tous les éditeurs ont leur propres interpretations. J'utilise prèsque toujours cette syntaxe puisqu'elle est plus rapide que des liaisons par WHERE dans mes requêtes multi-fichiers.
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
sebNews
Salut, merci Eric, je pense que c'est l'adaptation sur HF7 qui me posait pb : C'est la combinaison de plusieurs jointures Par contre il ne faut pas oublier aussi de faire categorie.libelle AS Exp1 categorie2.libelle AS Exp2
J'ai pu me débrouiller
Merci à vous deux pour votre aide
Sébastien
"roumegou" a écrit dans le message de news:
sebNews avait soumis l'idée : > Ok merci > j'ai fait un essai et cela fonctionne > par contre cela ne me sort pas les clients > qui n'ont pas de correspondance dans les tables > catégorie1 ou catégorie2 > > J'ai résolu le problème en mettant un code 0 dans les > tables CAT1 et CAT2 et des valeurs par défaut à 0 > dans le fichiers clients. > > Mais peut t on en SQL sortir : > " La liste des clients avec leur catégorie y compris ceux dont la
catégorie
> n'est pas saisie " ?
c'est le left outer join (à la diff du inner join)
si tu veux tous les clients meme ceux qui n'ont pas de catégorie select client.nom, client.cat_id,categorie.libelle from client left outer join catgorie on client.cat_idÊtegorie.cat_id si tu ne veux que les clients qui ont une catégorie select client.nom, client.cat_id,categorie.libelle from client inner join catgorie on client.cat_idÊtegorie.cat_id si tu veux que les clients qui n'ont pas de catégorie select client.nom, client.cat_id,categorie.libelle from client inner join catgorie on client.cat_idÊtegorie.cat_id and categorie.libelle is null
A adapter pour du HF > > > Sébastien > > > > > "mat" a écrit dans le message de > news:41dd1278$ >> sebNews wrote: >>> Ok merci de la réponse je vais essayer cette syntaxe C'est du SQL2 >>> standard ? >> >> Je regrette, je ne suis pas un expert en la matière. J'ai vu quelque >> part que WD correspond à SQL92 mais j'ai l'impression que tous les >> éditeurs ont leur propres interpretations. J'utilise prèsque toujours >> cette syntaxe puisqu'elle est plus rapide que des liaisons par WHERE >> dans mes requêtes multi-fichiers.
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
Salut,
merci Eric,
je pense que c'est l'adaptation sur HF7 qui me posait
pb : C'est la combinaison de plusieurs jointures
Par contre il ne faut pas oublier aussi de faire
categorie.libelle AS Exp1
categorie2.libelle AS Exp2
J'ai pu me débrouiller
Merci à vous deux pour votre aide
Sébastien
"roumegou" <roumegou@4usinfo.com> a écrit dans le message de
news:mn.32de7d51e6c902b3.24791@4usinfo.com...
sebNews avait soumis l'idée :
> Ok merci
> j'ai fait un essai et cela fonctionne
> par contre cela ne me sort pas les clients
> qui n'ont pas de correspondance dans les tables
> catégorie1 ou catégorie2
>
> J'ai résolu le problème en mettant un code 0 dans les
> tables CAT1 et CAT2 et des valeurs par défaut à 0
> dans le fichiers clients.
>
> Mais peut t on en SQL sortir :
> " La liste des clients avec leur catégorie y compris ceux dont la
catégorie
> n'est pas saisie " ?
c'est le left outer join (à la diff du inner join)
si tu veux tous les clients meme ceux qui n'ont pas de catégorie
select client.nom, client.cat_id,categorie.libelle from client left
outer join catgorie on client.cat_idÊtegorie.cat_id
si tu ne veux que les clients qui ont une catégorie
select client.nom, client.cat_id,categorie.libelle from client inner
join catgorie on client.cat_idÊtegorie.cat_id
si tu veux que les clients qui n'ont pas de catégorie
select client.nom, client.cat_id,categorie.libelle from client inner
join catgorie on client.cat_idÊtegorie.cat_id
and categorie.libelle is null
A adapter pour du HF
>
>
> Sébastien
>
>
>
>
> "mat" <NoSpam-mnobs@bluemail.ch> a écrit dans le message de
> news:41dd1278$1_1@news.bluewin.ch...
>> sebNews wrote:
>>> Ok merci de la réponse je vais essayer cette syntaxe C'est du SQL2
>>> standard ?
>>
>> Je regrette, je ne suis pas un expert en la matière. J'ai vu quelque
>> part que WD correspond à SQL92 mais j'ai l'impression que tous les
>> éditeurs ont leur propres interpretations. J'utilise prèsque toujours
>> cette syntaxe puisqu'elle est plus rapide que des liaisons par WHERE
>> dans mes requêtes multi-fichiers.
--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Salut, merci Eric, je pense que c'est l'adaptation sur HF7 qui me posait pb : C'est la combinaison de plusieurs jointures Par contre il ne faut pas oublier aussi de faire categorie.libelle AS Exp1 categorie2.libelle AS Exp2
J'ai pu me débrouiller
Merci à vous deux pour votre aide
Sébastien
"roumegou" a écrit dans le message de news:
sebNews avait soumis l'idée : > Ok merci > j'ai fait un essai et cela fonctionne > par contre cela ne me sort pas les clients > qui n'ont pas de correspondance dans les tables > catégorie1 ou catégorie2 > > J'ai résolu le problème en mettant un code 0 dans les > tables CAT1 et CAT2 et des valeurs par défaut à 0 > dans le fichiers clients. > > Mais peut t on en SQL sortir : > " La liste des clients avec leur catégorie y compris ceux dont la
catégorie
> n'est pas saisie " ?
c'est le left outer join (à la diff du inner join)
si tu veux tous les clients meme ceux qui n'ont pas de catégorie select client.nom, client.cat_id,categorie.libelle from client left outer join catgorie on client.cat_idÊtegorie.cat_id si tu ne veux que les clients qui ont une catégorie select client.nom, client.cat_id,categorie.libelle from client inner join catgorie on client.cat_idÊtegorie.cat_id si tu veux que les clients qui n'ont pas de catégorie select client.nom, client.cat_id,categorie.libelle from client inner join catgorie on client.cat_idÊtegorie.cat_id and categorie.libelle is null
A adapter pour du HF > > > Sébastien > > > > > "mat" a écrit dans le message de > news:41dd1278$ >> sebNews wrote: >>> Ok merci de la réponse je vais essayer cette syntaxe C'est du SQL2 >>> standard ? >> >> Je regrette, je ne suis pas un expert en la matière. J'ai vu quelque >> part que WD correspond à SQL92 mais j'ai l'impression que tous les >> éditeurs ont leur propres interpretations. J'utilise prèsque toujours >> cette syntaxe puisqu'elle est plus rapide que des liaisons par WHERE >> dans mes requêtes multi-fichiers.
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net