1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
| public void generateQuery(int nbDimension) {
int[] tabAnneeATraite = new int[nbDimension];
for (int i = 0; i < tabAnneeATraite.length; i++) {
tabAnneeATraite[i] = i;
}
StringBuffer sb = new StringBuffer();
sb.append("select caisse, guichet, joursemaine, semaine");
int cpt = 1;
for (int i = 0; i < tabAnneeATraite.length; i++) {
sb.append(",tg" + cpt + ".annee");
cpt++;
}
cpt = 1;
for (int i = 0; i < tabAnneeATraite.length; i++) {
sb.append(",tg" + cpt + ".nbEnv");
cpt++;
}
sb.append(",");
sb.append("((");
//la moyenne - ((tg1.nbEnv +tg2.nbEnv)/2)
cpt = 1;
for (int i = 0; i < tabAnneeATraite.length; i++) {
sb.append(" tg" + cpt + ".nbEnv ");
if(i !=tabAnneeATraite.length -1)
sb.append("+");
cpt++;
}
sb.append(")" + "/" + tabAnneeATraite.length + ")");
sb.append(" from ");
cpt = 1;
for (int i = 0; i < tabAnneeATraite.length; i++) {
if (i != 0) {
sb.append(",");
}
sb.append("transactionGuichet " + "tg" + cpt);
cpt++;
}
sb.append(" where \n");
generateWhere(tabAnneeATraite, sb, "caisse", " =");
sb.append(" and ");
generateWhere(tabAnneeATraite, sb, "guichet", " =");
sb.append(" and ");
generateWhere(tabAnneeATraite, sb, "joursemaine", " =");
sb.append(" and ");
generateWhere(tabAnneeATraite, sb, "caisse", " =");
sb.append(" and ");
generateWhere(tabAnneeATraite, sb, "semaine", " =");
sb.append(" and ");
generateWhere(tabAnneeATraite, sb, "annee", " !=");
System.out.println(sb.toString());
}
public void generateWhere(int tabAnneeATraite[], StringBuffer sb, String nomChamp, String operateur) {
int cpt = 1;
int cpt2 = 1;
boolean addToAdd = false;
for (int i = 0; i < tabAnneeATraite.length; i++) {
cpt2 = 1;
for (int j = 0; j < tabAnneeATraite.length; j++) {
if (i != j) {
if (addToAdd) {
sb.append("and ");
addToAdd = false;
}
sb.append("tg" + cpt + "." + nomChamp + operateur);
sb.append("tg" + cpt2 + "." + nomChamp + " \n");
addToAdd = true;
}
cpt2++;
}
cpt++;
}
} |
Partager