Bonjour,
Je sollicite votre aide :
Ci dessous le résultat de ma requête SQL :
montant numero_commande reference_commande Produit nb_occurence 3740 COM20161206 REF20161206_001 Produit_A 3 3740 COM20161206 REF20161206_001 Produit_B 3 3740 COM20161206 REF20161206_001 Produit_C 3 1875 COM20161206 REF20161206_002 Produit_A 2 1875 COM20161206 REF20161206_002 Produit_B 2
Voici ce que je cherche à obtenir. En SQL je n'ai pas trouvé comment le faire (je me suis orienté vers les fonctions fenêtrées : partition by, lead, lag)
montant numero_commande reference_commande Produit 1246.666 COM20161206 REF20161206_001 Produit_A 1246.666 COM20161206 REF20161206_001 Produit_B 1246.667 COM20161206 REF20161206_001 Produit_C 937.5 COM20161206 REF20161206_002 Produit_A 937.5 COM20161206 REF20161206_002 Produit_B
Comme vous pouvez le voir le montant est global et il n'est pas au détails (non présent en bdd). Ce que je cherche à faire c'est de pouvoir l'avoir au détails.
J'ai bien tenté de diviser directement mon montant par le nb_occurence, mais à la fin la somme ne correspond pas au montant (problème d'arrondi)
sous éclipse j'ai bricolé un bout de code :
j'ai essayé de transcoder ça dans un TjavaRow/TjavaFlex mais sans résultat...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 import java.math.BigDecimal; import java.math.RoundingMode; public class div { public static void main(String[] args) { BigDecimal a, b; BigDecimal reste, result; Scanner scan = new Scanner(System.in); a = BigDecimal.valueOf(scan.nextInt()); b = BigDecimal.valueOf(scan.nextInt()); result = a.divide(b, 3, RoundingMode.HALF_DOWN); reste = a.subtract(result); do { b = b.subtract(new BigDecimal(1)); result = reste.divide(b, 3, RoundingMode.HALF_DOWN); System.out.println("Résulat = " + result); reste = reste.subtract(result); System.out.println("reste = " + reste); System.out.println("b = " + b+"\n"); } while (reste.compareTo(BigDecimal.ZERO) != 0); } }
mon Job est de la sorte :
Mes connaissances en java sont assez limitées... Pouvez-vous m'aider ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2TpostgresqlInput --row1-->TjavaRow--row2--> TlogRow (avec comme finalité, un tPostgresqlOuput)
++




Répondre avec citation




Partager