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
Code :
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 |
j'arrive a obtenir le resultat
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 le
Code :
FICHE_EMBAUCHE_TRANSIT.date_transit
mais je suis obligé sinon windev me parle de Correction de requête
du genre
Code :
votre requête comporte des ordres spécifiques a un type de serveur
me suis tourné vers une requête imbriquée de ce genre
Code :
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 |
mais j'arrive pas a faire des requêtes imbriquées sour windev
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?