Bonsoir,
savez-vous s'il est possible d'affecter, dans une requête à la fonction round, un nombre de décimales qui serait issu d'une colonne de table et non pas fixé :
SELECT n1.nb_decimales_qte,round(n1.qte_inven,n1.nb_decimales_qte) as 'Quantité' FROM articles n1;
En fait cela fonctionne. J'avais bêtement simplifié la requête mais trop !!
C'est en fait cette requete qui ne fonctionne pas !!
SELECT n1.code as 'Article',n1.description as 'Désignation',round(n5.qte_inven,n2.nb_decimales_qte) as 'Quantité',n5.pu_inv as 'PU',(n5.pu_inv*n5.qte_inven) as 'Valeur',n2.nb_decimales_qte FROM _article n1 left join _inventaire_lignes n5 using(art_cleunik) left join _art_stock n2 using(art_cleunik) where n5.inv_cleunik=20000001 AND n1.types_gestion & 4 order by code;
Je m'en suis rendu compte en essayant de contourner avec un autre type de requete, qui ne fonctionne pas non plus.
SELECT n1.code as 'Article',n1.description as 'Désignation',n2.nb_decimales_qte,CASE n2.nb_decimales_qte WHEN 0 THEN round(n5.qte_inven,0) WHEN 1 THEN round(n5.qte_inven,1) WHEN 2 THEN round(n5.qte_inven,2) WHEN 3 THEN round(n5.qte_inven,3) ELSE round(n5.qte_inven,4) END as 'Quantité', n5.pu_inv as 'PU',(n5.pu_inv*n5.qte_inven) as 'Valeur' FROM _article n1 left join _inventaire_lignes n5 using(art_cleunik) left join _art_stock n2 using(art_cleunik) where n5.inv_cleunik=20000001 AND n1.types_gestion & 4 order by code;
Il semblerait que cela vienne du fait des 2 jointures sur 3 tables !! Où fais-je donc une grosse boulette ?
Partager