Condition sur 2 champs

Résolu/Fermé
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022 - 2 janv. 2018 à 20:19
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022 - 10 janv. 2018 à 07:32
Bonjour,

Bonne année à tous et surtout la santé.

Je cherche à trier des champs dans une table, dans une table j'ai 2 champs qui gèrent l'emballage dans une fiche article, PAAPRIORITY=0 ou PAAPRIORITY=1 et PAADEFAULT =1 et je voudrais récupérer l'un ou l'autre par une condition c.a.d :



si PAAPRIORITY=1 on prend PAAPRIORITY=1 et si PAAPRIORITY=0 alors on prend PAADEFAULT =1



j'ai essayé avec ça dans select, mais je récupère les 2 champs

Case when PAAPRIORITY=0 then 1 else 0 end as FILTRAGE_Priorité

Bon j’espère que c'est clair mon explication.

Bonne soirée.

Pascal
A voir également:

3 réponses

yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
2 janv. 2018 à 20:57
bonsoir,
tu n'es pas du tout clair, peut-être avec quelques exemples?
et ainsi?
if(PAAPRIORITY=1,1,PAADEFAULT) 
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
3 janv. 2018 à 09:16
Bonjour yg_be,

Bonne année à toit et à toute ta famille et encore merci pour ton aide.

j'ai mis le code , mais il y a une erreur sur if.

Je vais essayer d’être plus clair, dans une fiche article j'ai la table emballage et j'ai 2 champs PAADEFAULT qui est toujours égal à 1 et j'ai PAAPRIORITY qui est égal à 1 si il existe, sinon il y a que PAADEFAULT=1.

Donc j'essaie de récupérer PAAPRIORITY et si il n'existe pas, je récupére PAADEFAULT.

ci-joint mon code :

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,
article.ARTCRITERIA19 as Code_tri,
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,
STOADJUSTQTY,
STOQTYRESERVORDER,
Stostockdispo,
Stostockphysique,

ARTQTEN1 as Qte_N1,
ARTQTEN as Qte_N




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'
if(PAAPRIORITY=1,1,PAADEFAULT)
and stooutofdate<>1
and STODEPOT <>'ZZZ'
and trfnocostident=3
and ARTMAINSUPPLIER=6
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
3 janv. 2018 à 12:03
j'avais compris que tu voulais récupérer l'un ou l'autre, donc il faut mettre le IF avant le FROM:
SELECT STOCOMMENT as Commentaire, 
if(PAAPRIORITY=1,1,PAADEFAULT) as AutreChose,
...

bonne année à toi et aux tiens!
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
3 janv. 2018 à 12:12
Oui je veux récupérer PAAPRIORITY si il existe et sinon je récupère PAADEFAULT
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
3 janv. 2018 à 12:25
as-tu mis le IF avant le FROM?
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
3 janv. 2018 à 14:11
oui mais j'ai un message d'erreur il ne veut pas de IF
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471 > pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
3 janv. 2018 à 15:42
quel message d'erreur?
et ceci donne quoi?
SELECT IF(1>3,'true','false');
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
4 janv. 2018 à 10:20
il est possible de récupérer l'un ou l'autre, nous sommes en train de tester pour obtenir une solution.
j'essaie de comprendre pourquoi
IIF(PAAPRIORITY=1,1,PAADEFAULT)
ne te convient pas.
pour comprendre cela, j'ai besoin de comprendre pour quelles combinaisons de valeur de PAAPRIORITY et de PAADEFAULT le résultat retourné par
IIF(PAAPRIORITY=1,1,PAADEFAULT)
ne te convient pas.
et donc je te demande de me montrer des réponses à la requête suivante, et de m'expliquer pourquoi la valeur de IIF(PAAPRIORITY=1,1,PAADEFAULT) ne te convient pas.
SELECT PAAPRIORITY, PAADEFAULT, IIF(PAAPRIORITY=1,1,PAADEFAULT) FROM ...
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
4 janv. 2018 à 10:51
IIF(PAAPRIORITY=1,1,PAADEFAULT) et bien cela me renvoie pour le même article une ligne avec PAAPRIORITY=1 et une ligne avec PAADEFAULT=1
donc j'ai 2 lignes avec les 2 emballages differents et moi je veux l'un ou l'autre c.a.d soit le PAAPRIORITY si il existe et sinon le PAADEFAULT, mais je veux qu'une seule ligne par article pas de doublon.
je ne sais pas si c'est clair mon explication, pour info je ne mets rien dans from on est bien d'accord.
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471 > pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
4 janv. 2018 à 11:07
merci de partager le texte du SELECT que tu utilises pour tester le IIF.
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
4 janv. 2018 à 11:36
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,
article.ARTCRITERIA19 as Code_tri,
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,
STOADJUSTQTY,
STOQTYRESERVORDER,
Stostockdispo,
Stostockphysique,

ARTQTEN1 as Qte_N1,
ARTQTEN as Qte_N,
PAAPRIORITY,
PAADEFAULT,
IIF(PAAPRIORITY=1,1,PAADEFAULT)



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


and ARTMAINSUPPLIER=6
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471 > pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
4 janv. 2018 à 11:59
merci de ne garder que garder que les trois derniers champs entre le SELECT et le FROM.
ce SELECT doit donc te donner TROIS éléments pour chaque enregistrement.
peux-tu me donner les trois valeurs?
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
4 janv. 2018 à 13:32
la valeur c'est que des 1
0