Bonjour
je voudrais afficher entre 2 dates(choisies par l'utilisateur) un tableau(etat) qui me donne la somme totale de personne embauchées par societe
j'ai pu faire ce code avec l'editeur de requete de windev
j'arrive a obtenir le resultat
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
25
26
27 SELECT SUM(FICHE_EMBAUCHE_TRANSIT.dock_dem_transit) AS la_somme_dock_dem_transit, SUM(FICHE_EMBAUCHE_TRANSIT.deficit) AS la_somme_deficit, SUM(FICHE_EMBAUCHE_TRANSIT.dock_emb_transit) AS la_somme_dock_emb_transit, ADHERENTS.lib_adherents AS lib_adherents, LEFT(FICHE_EMBAUCHE_TRANSIT.date_transit,4) AS Année, LEFT(FICHE_EMBAUCHE_TRANSIT.date_transit,6) AS Mois, FICHE_EMBAUCHE_TRANSIT.date_transit AS date_transit, shift.shift_lib AS shift_lib FROM shift, FICHE_EMBAUCHE_TRANSIT, ADHERENTS WHERE FICHE_EMBAUCHE_TRANSIT.IDshift = shift.IDshift AND FICHE_EMBAUCHE_TRANSIT.IDADHERENTS=ADHERENTS.IDADHERENTS AND ( FICHE_EMBAUCHE_TRANSIT.date_transit BETWEEN {Param1} AND {Param4} ) GROUP BY ADHERENTS.lib_adherents, LEFT(FICHE_EMBAUCHE_TRANSIT.date_transit,4), LEFT(FICHE_EMBAUCHE_TRANSIT.date_transit,6), FICHE_EMBAUCHE_TRANSIT.date_transit, shift.shift_lib
mais impossible d'associer les effectifs demandés d'une même société sur 2 dates differentes de l'intervalle de dates donné par l'utilisateur
j'ai donc pensé à un GROUP BY sans lemais je suis obligé sinon windev me parle de Correction de requête
Code : Sélectionner tout - Visualiser dans une fenêtre à part FICHE_EMBAUCHE_TRANSIT.date_transit
du genreme suis tourné vers une requête imbriquée de ce genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part votre requête comporte des ordres spécifiques a un type de serveur
mais j'arrive pas a faire des requêtes imbriquées sour windev
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
25
26
27
28
29
30
31
32 SELECT lib_adherents,SUM(la_somme_dock_dem_transit),SUM(la_somme_deficit),SUM(la_somme_dock_emb_transit) FROM ( SELECT SUM(FICHE_EMBAUCHE_TRANSIT.dock_dem_transit) AS la_somme_dock_dem_transit, SUM(FICHE_EMBAUCHE_TRANSIT.deficit) AS la_somme_deficit, SUM(FICHE_EMBAUCHE_TRANSIT.dock_emb_transit) AS la_somme_dock_emb_transit, ADHERENTS.lib_adherents AS lib_adherents, LEFT(FICHE_EMBAUCHE_TRANSIT.date_transit,4) AS Année, LEFT(FICHE_EMBAUCHE_TRANSIT.date_transit,6) AS Mois, FICHE_EMBAUCHE_TRANSIT.date_transit AS date_transit, shift.shift_lib AS shift_lib FROM shift, FICHE_EMBAUCHE_TRANSIT, ADHERENTS WHERE FICHE_EMBAUCHE_TRANSIT.IDshift = shift.IDshift AND FICHE_EMBAUCHE_TRANSIT.IDADHERENTS = ADHERENTS.IDADHERENTS AND ( FICHE_EMBAUCHE_TRANSIT.date_transit BETWEEN {Param1} AND {Param4} ) GROUP BY ADHERENTS.lib_adherents, LEFT(FICHE_EMBAUCHE_TRANSIT.date_transit,4), LEFT(FICHE_EMBAUCHE_TRANSIT.date_transit,6), FICHE_EMBAUCHE_TRANSIT.date_transit, shift.shift_lib ) GROUP BY lib_adherents
2 questions
1-Concernant la Correction de requete cela signifie que je dois changer de base de donnés si oui laquelle prendre?
2-au cas ou ma requête imbriquée serait une solution mon code est il juste?
Partager