Condition

Fermé
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022 - 15 oct. 2016 à 11:46
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022 - 27 oct. 2016 à 18:32
Bonjour,
Je cale sur un code , je veux choisir un des 2 champs dans une table.
J'ai dans from and( PAAPRIORITY=1 or PAADEFAULT=1) et je veux que si le champ PAAPRIORITY n'existe pas alors on prend PAADEFAULT, mais quand j’écris

and ( PAAPRIORITY=1 or PAADEFAULT=1), j'ai les 2.

J'ai PAADEFAULT dans select.

Bon je découvre pas à pas le code que m'a fait un informaticien ...

Je vous remercie pour votre aide et explication.

Merci

Pascal

15 réponses

Utilisateur anonyme
15 oct. 2016 à 22:34
Bonjour,

difficile de répondre car comprendre avec si peu d'éléments....

Mets donc ta requête complète.

A+
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
Modifié par crapoulou le 17/10/2016 à 22:38
Bonjour HDU,

Je mets la requete complete, les données proviennent d'un programme developpé sous firebird.

Les champs proviennent de la meme table.

ci-joint la requete :

SELECT STOCOMMENT as Commentaire, 
article.ARTNOARTICLE as Code,
 article.ARTSORT as Genre,  case when artvariety<>'' then artspecies||' '||artvariety else artspecies end as Espece_Variete, 
stocriteria1.pardesignation as Etat_lot,
 artcriteria1.pardesignation as Diam_pot,
 artpresentation.pardesignation as Litrage, 
artcriteria3.pardesignation as Presentation,
artcriteria2.pardesignation as Presentation, 
unvdesignation as Taille,  
artcriteria4.pardesignation as Diam_tete,
 artcriteria9.pardesignation as HT_total,
DEPOT.PARDESIGNATION as Site,
EMPLACEMENT.EMPDESIGNATION as Parcelle_lot,
stocriteria2.pardesignation as Marquage,
 paaprivilegedpackage as Condition,
packaging.pacdesignation as Condition, 
paaquantity as Qte_cond,
paaqtyprivilegedpackage as Nb_cond,
paaquantity*paaqtyprivilegedpackage as Qte_Roll,
paaqtyprivilegedpackage2 as Nb_plt_cam,
 paaqtyprivilegedpackage3 as Metrage_cam,
paaquantity*paaqtyprivilegedpackage*paaqtyprivilegedpackage2*paaqtyprivilegedpackage3 as Qte_plt_cam,
 paadefault as Cond_def, 
article.ARTCRITERIA19 as Code_tri, 
artcriteria19.pardesignation as tri, 
artcriteria8 as Initial_fourn,
article.ARTPRICEREFMARGIN as Tarif_PR,
trfcostvalue  as Tarif_Palmacea,

artcriteria12.pardesignation as Notre_Selection,
STOBEGINDATEAVAILABLE,
ARTQTEN1,
ARTQTEN,
STOQTYRESERVORDER,
Stostockphysique, 
Stostockdispo

FROM article article
left outer join PACKAGEARTICLE on paanoarticle=artnoarticle
left outer join artcost on trfnoarticle=artnoarticle
left outer join supplier on cusnocustomer=artmainsupplier
left outer join artpresentation on artpresentation.parcodeparam=article.artpresentation
left outer join unitevente on unvcode=artsize
left outer join artfamily on artfamily.parcodeparam=article.artfamilycode
left outer join artcriteria5 on artcriteria5.parcodeparam=article.artcriteria5
left outer join artcriteria1 on artcriteria1.parcodeparam=article.artcriteria1
left outer join artcriteria2 on artcriteria2.parcodeparam=article.artcriteria2
left outer join artcriteria3 on artcriteria3.parcodeparam=article.artcriteria3
left outer join artcriteria9 on artcriteria9.parcodeparam=article.artcriteria9
left outer join artcriteria4 on artcriteria4.parcodeparam=article.artcriteria4
left outer join artcriteria10 on artcriteria10.parcodeparam=article.artcriteria10
left outer join artcriteria11 on artcriteria11.parcodeparam=article.artcriteria11
left outer join artcriteria6 on artcriteria6.parcodeparam=article.artcriteria6
left outer join artcriteria7 on artcriteria7.parcodeparam=article.artcriteria7
left outer join artcriteria12 on artcriteria12.parcodeparam=article.artcriteria12
left outer join artcriteria13 on artcriteria13.parcodeparam=article.artcriteria13
left outer join artcriteria19 on artcriteria19.parcodeparam=article.artcriteria19
left outer join artcriteria8 on artcriteria8.parcodeparam=article.artcriteria8
Left outer join packaging on packaging.paccodepackaging=packagearticle.paaprivilegedpackage

inner join LOTSTOCK on STONOARTICLE=ARTNOARTICLE
Left outer join EMPLACEMENT on EMPLACEMENT. EMPCODE=STOLOCATEMPLACEMENT
left outer join STOCRITERIA1 on STOCRITERIA1.parcodeparam=LOTSTOCK.STOCRITERIA1
left outer join STOCRITERIA2 on STOCRITERIA2.parcodeparam=LOTSTOCK.STOCRITERIA2
Left outer join DEPOT on DEPOT.PARCODEPARAM=LOTSTOCK.STODEPOT
where artnoarticle<>'9995'

  
and stooutofdate<>1
and STODEPOT <>'ZZZ'
and trfnocostident=3


where (PAAPRIORITY=1 or paadefault=1 )  

 message erreur XTX systems interbase6 ODBC Driver, Dynamic SQL Error code =- 104, token unknown line 74 column 1 where

and ARTMAINSUPPLIER=20


Je vous remercie pour votre aide, je ne comprends pas encore la logique du code.

Bonne journée.

Pascal
0
Utilisateur anonyme
17 oct. 2016 à 19:38
Bonjour,

je ne connais pas Firebird, mais la fin de ta requête est étrange :

Left outer join DEPOT on DEPOT.PARCODEPARAM=LOTSTOCK.STODEPOT 
where artnoarticle<>'9995' 


and stooutofdate<>1 
and STODEPOT <>'ZZZ' 
and trfnocostident=3 


where (PAAPRIORITY=1 or paadefault=1 ) 


il y a 2 where.

0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
17 oct. 2016 à 22:22
Le 2eme Where c'est moi qui l'ai ajouté et ca ne fonctionne pas, j'ai essayé avec and, mais la j'ai les 2 champs ?

Je ne trouve pas le bon code ?

Je continue à cogiter ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
17 oct. 2016 à 22:31
Ok,

mais en fait, je ne vois pas la limite entre la requête et le message d'erreur.

where artnoarticle<>'9995' 


and stooutofdate<>1 
and STODEPOT <>'ZZZ' 
and trfnocostident=3 


where (PAAPRIORITY=1 or paadefault=1 ) 

message erreur XTX systems interbase6 ODBC Driver, Dynamic SQL Error code =- 104, token unknown line 74 column 1 where 

and ARTMAINSUPPLIER=20 


Utilises la balise <code>, on y verra peut-être un peu + clair...

A+
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
19 oct. 2016 à 09:31
Bonjour HDU,

Bon j'ai essayé de comprendre à quoi correspondait le code, mais je ne comprends pas comment je peux faire un lien sur mon fichier excel.

Je suis débutant dans ce domaine, j’écris du code par déduction de ce que m'a fait l'informaticien.

Bonne journée
0
Ce n'est pas ce que je te demandais, je te disais de coller ton code sql entre
 <code> et 
</code>
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022 > Utilisateur anonyme
19 oct. 2016 à 20:29
de mettre "et" entre les 2 champs, c'est ca que tu veux dire, je sais je suis un boulet en informatique.
bonne soirée.

Pascal
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
19 oct. 2016 à 16:15
Bonjour,

Ce que tu mets dans la clause WHERE va filtrer les résultats affichés, et non modifier les colonnes fournies.

Si je comprends bien ta demande, ce que tu veux, c'est que la valeur Cond_def vale PAAPRIORITY si ça existe, ou PAADEFAULT sinon.

Pour ça, enlève tes conditions dans le WHERE, elles sont inutiles ; et remplace
paadefault as Cond_def

par
ISNULL(paapriority, paadefault) as Cond_def


Xavier
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
19 oct. 2016 à 17:53
Bonjour Reivax962,

Bon je m'explique mal, mais ta réponse va m'éclairer, j'ai dans une table 2 champs paapriority et paadefault, qui me renvoie chacun une info et j'ai besoin d'avoir comme retour d'info paapriority si il existe ou sinon paadefault qui existe toujours.

Donc j'en ai déduit que je demandai cela dans from comme toutes mes demandes de résultat.



Merci pour ton aide.

Pascal
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
19 oct. 2016 à 20:26
Bon j'ai essayé ISNULL(paapriority, paadefault) as Cond_def dans select et dans from, ca ne fonctionne pas, message d'erreur sur isnull.

Bon je continue à chercher.

Bonne soirée.

Pascal
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
24 oct. 2016 à 14:20
Bonjour,

ISNULL est la fonction que tu recherches, je t'assure :)
Si tu as un message d'erreur, c'est peut-être que les deux colonnes n'ont pas le même type.
Je peux t'aider si tu me donnes :
- Le message d'erreur exact ;
- La valeur que prend la colonne PAAPRIORITY quand elle n'a pas de valeur (NULL ? Chaine vide ? 0 ?)
- Le type de ces deux colonnes.

Xavier
0
Utilisateur anonyme
19 oct. 2016 à 21:20
Tu ne veux vraiment pas mettre tout ton code sql ici, entre les balises '<code> ?
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
Modifié par baladur13 le 27/10/2016 à 10:29
Bonjour HDU,

Wahou je viens de comprendre ce que tu voulais, désolé je ne ne comprenais pas comment fonctionner "le code" je viens de trouver l'explication et l'icone pour le faire.
Je te mets le code en entier.
SELECT STOCOMMENT as Commentaire, 
article.ARTNOARTICLE as Code,
 article.ARTSORT as Genre,  case when artvariety<>'' then artspecies||' '||artvariety else artspecies end as Espece_Variete, 
stocriteria1.pardesignation as Etat_lot,
 artcriteria1.pardesignation as Diam_pot,
 artpresentation.pardesignation as Litrage, 
artcriteria3.pardesignation as Presentation,
artcriteria2.pardesignation as Presentation, 
unvdesignation as Taille,  
artcriteria4.pardesignation as Diam_tete,
 artcriteria9.pardesignation as HT_total,
DEPOT.PARDESIGNATION as Site,
EMPLACEMENT.EMPDESIGNATION as Parcelle_lot,
stocriteria2.pardesignation as Marquage,
 paaprivilegedpackage as Condition,
packaging.pacdesignation as Condition, 
paaquantity as Qte_cond,
paaqtyprivilegedpackage as Nb_cond,
paaquantity*paaqtyprivilegedpackage as Qte_Roll,
paaqtyprivilegedpackage2 as Nb_plt_cam,
 paaqtyprivilegedpackage3 as Metrage_cam,
paaquantity*paaqtyprivilegedpackage*paaqtyprivilegedpackage2*paaqtyprivilegedpackage3 as Qte_plt_cam,
 paadefault as Cond_def, 
article.ARTCRITERIA19 as Code_tri, 
artcriteria19.pardesignation as tri, 
artcriteria8 as Initial_fourn,
article.ARTPRICEREFMARGIN as Tarif_PR,
trfcostvalue  as Tarif_Palmacea,

artcriteria12.pardesignation as Notre_Selection,
STOBEGINDATEAVAILABLE,
ARTQTEN1,
ARTQTEN,
STOQTYRESERVORDER,
Stostockphysique, 
Stostockdispo 


FROM article article
left outer join PACKAGEARTICLE on paanoarticle=artnoarticle
left outer join artcost on trfnoarticle=artnoarticle
left outer join supplier on cusnocustomer=artmainsupplier
left outer join artpresentation on artpresentation.parcodeparam=article.artpresentation
left outer join unitevente on unvcode=artsize
left outer join artfamily on artfamily.parcodeparam=article.artfamilycode
left outer join artcriteria5 on artcriteria5.parcodeparam=article.artcriteria5
left outer join artcriteria1 on artcriteria1.parcodeparam=article.artcriteria1
left outer join artcriteria2 on artcriteria2.parcodeparam=article.artcriteria2
left outer join artcriteria3 on artcriteria3.parcodeparam=article.artcriteria3
left outer join artcriteria9 on artcriteria9.parcodeparam=article.artcriteria9
left outer join artcriteria4 on artcriteria4.parcodeparam=article.artcriteria4
left outer join artcriteria10 on artcriteria10.parcodeparam=article.artcriteria10
left outer join artcriteria11 on artcriteria11.parcodeparam=article.artcriteria11
left outer join artcriteria6 on artcriteria6.parcodeparam=article.artcriteria6
left outer join artcriteria7 on artcriteria7.parcodeparam=article.artcriteria7
left outer join artcriteria12 on artcriteria12.parcodeparam=article.artcriteria12
left outer join artcriteria13 on artcriteria13.parcodeparam=article.artcriteria13
left outer join artcriteria19 on artcriteria19.parcodeparam=article.artcriteria19
left outer join artcriteria8 on artcriteria8.parcodeparam=article.artcriteria8
Left outer join packaging on packaging.paccodepackaging=packagearticle.paaprivilegedpackage

inner join LOTSTOCK on STONOARTICLE=ARTNOARTICLE
Left outer join EMPLACEMENT on EMPLACEMENT. EMPCODE=STOLOCATEMPLACEMENT
left outer join STOCRITERIA1 on STOCRITERIA1.parcodeparam=LOTSTOCK.STOCRITERIA1
left outer join STOCRITERIA2 on STOCRITERIA2.parcodeparam=LOTSTOCK.STOCRITERIA2
Left outer join DEPOT on DEPOT.PARCODEPARAM=LOTSTOCK.STODEPOT
where artnoarticle<>'9995'

" j'ai essayé and et j'ai les 2 infos et where plante, Reivax962 m'a proposé isnull et il plante aussi                                           (PAAPRIORITY=1 or paadefault=1 ) 
  
and stooutofdate<>1
and STODEPOT <>'ZZZ'
and trfnocostident=3


and ARTMAINSUPPLIER=20
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
20 oct. 2016 à 08:40
SELECT STOCOMMENT as Commentaire, 
article.ARTNOARTICLE as Code,
 article.ARTSORT as Genre,  case when artvariety<>'' then artspecies||' '||artvariety else artspecies end as Espece_Variete, 
stocriteria1.pardesignation as Etat_lot,
 artcriteria1.pardesignation as Diam_pot,
 artpresentation.pardesignation as Litrage, 
artcriteria3.pardesignation as Presentation,
artcriteria2.pardesignation as Presentation, 
unvdesignation as Taille,  
artcriteria4.pardesignation as Diam_tete,
 artcriteria9.pardesignation as HT_total,
DEPOT.PARDESIGNATION as Site,
EMPLACEMENT.EMPDESIGNATION as Parcelle_lot,
stocriteria2.pardesignation as Marquage,
 paaprivilegedpackage as Condition,
packaging.pacdesignation as Condition, 
paaquantity as Qte_cond,
paaqtyprivilegedpackage as Nb_cond,
paaquantity*paaqtyprivilegedpackage as Qte_Roll,
paaqtyprivilegedpackage2 as Nb_plt_cam,
 paaqtyprivilegedpackage3 as Metrage_cam,
paaquantity*paaqtyprivilegedpackage*paaqtyprivilegedpackage2*paaqtyprivilegedpackage3 as Qte_plt_cam,
 paadefault as Cond_def, 
article.ARTCRITERIA19 as Code_tri, 
artcriteria19.pardesignation as tri, 
artcriteria8 as Initial_fourn,
article.ARTPRICEREFMARGIN as Tarif_PR,
trfcostvalue  as Tarif_Palmacea,

artcriteria12.pardesignation as Notre_Selection,
STOBEGINDATEAVAILABLE,
ARTQTEN1,
ARTQTEN,
STOQTYRESERVORDER,
Stostockphysique, 
Stostockdispo 


FROM article article
left outer join PACKAGEARTICLE on paanoarticle=artnoarticle
left outer join artcost on trfnoarticle=artnoarticle
left outer join supplier on cusnocustomer=artmainsupplier
left outer join artpresentation on artpresentation.parcodeparam=article.artpresentation
left outer join unitevente on unvcode=artsize
left outer join artfamily on artfamily.parcodeparam=article.artfamilycode
left outer join artcriteria5 on artcriteria5.parcodeparam=article.artcriteria5
left outer join artcriteria1 on artcriteria1.parcodeparam=article.artcriteria1
left outer join artcriteria2 on artcriteria2.parcodeparam=article.artcriteria2
left outer join artcriteria3 on artcriteria3.parcodeparam=article.artcriteria3
left outer join artcriteria9 on artcriteria9.parcodeparam=article.artcriteria9
left outer join artcriteria4 on artcriteria4.parcodeparam=article.artcriteria4
left outer join artcriteria10 on artcriteria10.parcodeparam=article.artcriteria10
left outer join artcriteria11 on artcriteria11.parcodeparam=article.artcriteria11
left outer join artcriteria6 on artcriteria6.parcodeparam=article.artcriteria6
left outer join artcriteria7 on artcriteria7.parcodeparam=article.artcriteria7
left outer join artcriteria12 on artcriteria12.parcodeparam=article.artcriteria12
left outer join artcriteria13 on artcriteria13.parcodeparam=article.artcriteria13
left outer join artcriteria19 on artcriteria19.parcodeparam=article.artcriteria19
left outer join artcriteria8 on artcriteria8.parcodeparam=article.artcriteria8
Left outer join packaging on packaging.paccodepackaging=packagearticle.paaprivilegedpackage

inner join LOTSTOCK on STONOARTICLE=ARTNOARTICLE
Left outer join EMPLACEMENT on EMPLACEMENT. EMPCODE=STOLOCATEMPLACEMENT
left outer join STOCRITERIA1 on STOCRITERIA1.parcodeparam=LOTSTOCK.STOCRITERIA1
left outer join STOCRITERIA2 on STOCRITERIA2.parcodeparam=LOTSTOCK.STOCRITERIA2
Left outer join DEPOT on DEPOT.PARCODEPARAM=LOTSTOCK.STODEPOT
where artnoarticle<>'9995'
and PAAPRIORITY=1
  
and stooutofdate<>1
and STODEPOT <>'ZZZ'
and trfnocostident=3


and ARTMAINSUPPLIER=20
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
20 oct. 2016 à 08:43
Ha be j'ai fini par y arriver, bon maintenant je sais ce que est le code, merci HDU.
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
20 oct. 2016 à 09:29
une précision ce code est dans Excel et les données proviennent d'un serveur via query.
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
24 oct. 2016 à 15:41
Bonjour à tous,

Et bien je ne trouve pas ma solution, j'ai fait x essai de code et pas moyen de trouver le bon.

Sos si quelqu'un a une solution pour moi.

Merci.

Pascal
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
24 oct. 2016 à 16:59
Tu n'as pas dû voir ma réponse :

Bonjour,

ISNULL est la fonction que tu recherches, je t'assure :)
Si tu as un message d'erreur, c'est peut-être que les deux colonnes n'ont pas le même type.
Je peux t'aider si tu me donnes :
- Le message d'erreur exact ;
- La valeur que prend la colonne PAAPRIORITY quand elle n'a pas de valeur (NULL ? Chaine vide ? 0 ?)
- Le type de ces deux colonnes.

Xavier
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022 > Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021
25 oct. 2016 à 21:34
Bonjour XAVIER,

Ok je comprends mieux, j'ai regardé et effectivement paapriority=1 et paadefault = null, mais si j'ai bien compris ce que tu me donnes comme code :
ISNULL(paapriority, paadefault) as Cond_def, je le mets dans select, mais je mets quoi en from pour avoir le résultat de l'un ou l'autre.

Merci pour ton aide.

Bonne soirée
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
26 oct. 2016 à 09:14
Bonjour,

Tu n'as rien besoin de rajouter dans FROM.
Sauf si les données que tu veux afficher sont issues d'une autre table.

Xavier
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
26 oct. 2016 à 09:27
Bonjour Xavier,

j'ai mis ISNULL(paapriority, paadefault) as Cond_def dans select et le message d'erreur est le suivant

[XTG SYSTEMS][INTERBASE6 OBC DRIVER],DYNAMIC SQL ERROR, SQLISNULL(paapriority, paadefault) as Cond_defRCODE =-804, FUNCTION UNKNOWN, ISNULL
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
26 oct. 2016 à 09:28
ils proviennent bien de la même table
0