Je fais un select où je récupère les articles qui seront en paramètre des DECODE
Select item ...
Je fais deux boucles :
La première construit le string "decode" ($field correspond à chaque item)
La seconde construit un string pour le where : where item in ('item', 'item', ...) => $ref = chaque item
Code :
- for ($i = 0; $i < $nrows; $i++ )
- {
- $field = $result["ITEM"];
- $art .= "decode(c.t\$item,'$field[$i]',sum(c.t\$oqua)) as \"$field[$i]\",";
- }
- for ($i = 0; $i < $nrows; $i++ )
- {
- $ref = $result["ITEM"];
- $line .= "'$ref[$i]',";
- }
|
J'obtiens :
select a, b, c, $art 0 from x, y, z where ... item in ($line 0)
Note : les deux '0' c'est parce que je boucle en ajoutant une virgule entre chaque item, donc à la fin il me reste une virgule "libre', alors je mets un "faux" champ 0 (pas trop un problème)
Ca donne : decode(item,item,SUM(qty)) as "item", decode(item,item,SUM(qty)) as "item", 0 .... in (item, item, 0)
Et je termine :
Code :
- echo "<html><body>";
- echo "<table border=3 cellspacing='2'>\n<tr>\n";
- for ($x = 0; $x < $nrow; $x++ )
- {
- echo "<tr>\n";
- echo "<td><small>" . $res["A"][$x]. "</small></td>";
- echo "<td><small>" . $res["B"][$x]. "</small></td>";
- echo "<td><small>" . $res["C"][$x]. "</small></td>";
- for ($i = 0; $i < $nrows; $i++ )
- {
- echo "<td><small>" . $field[$i] . "</small></td>";
- }
- echo "<td>" . $res["0"][$x]. "</td>";
- echo "</tr>\n";
- }
- echo "</body></html>\n";
- ?>
|
J'ai le bon nombre de lignes et de colonnes
Mais il m'affiche l'item (200.01, par ex) et non la somme qui lui correspond ...
J'arrive pas à récupérer la somme en fait ...
Genre :
NUMERO - NOM - ITEM
0001 - TOTO - 8
0002 - TUTU - 6
A la place de 8,6 j'ai le numéro d'item (qui est en char)
Derni!re précision : tout ça c'est sur vers oracle, sur Baan ... Donc le code est vraiment peu lisible ...
J'ai fait de mon mieux ...
Y a pt'être moyen d'éviter le decode pour ça, et de passer par des fonctions oracle/php dédiées ...
(Le nombre d'article est aléatoire, il dépend d'un range de date entré en POST par formulaire, d'où la source de mes probs ...)
Message édité par Mosca le 22-04-2004 à 23:44:30