Bonjour,
je n'arrive pas à faire une requête donc je fais appel à vous. Je pense que ça doit avoir un rapport avec le group by.
Imaginons un tableau avec des données.
Mon tableau a 4 colonnes
- nom chef
- nom autre
- date principale
- date secondaire
Pour 1 nom chef, il y a toujours 4 noms autres, donc 4 lignes dans le tableau, pour un seul nom chef.
Ma requete doit récupérer la liste des noms chefs où date principal n'est pas nulle ou bien date secondaire n'est pas nulle, triée par date principale puis par date secondaire.
voici à quoi ressemble le tableau:
Voici la requete que j'avais faite:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 nom chef | nom autre | date principale | date secondaire A|1|d1p|d1s A|2|d2p|d2s A|3|d3p|d3s A|4|d4p|d4s B|5|d5p|d5s B|6|d6p|d6s B|7|d6p|d6s B|8|d6p|d6s
Le probleme c'est que je récupère plusieurs fois un meme nom chef, si les dates sont non nulles pour au moins 2 de ces noms autres:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT [nom chef], [date_principale], [date_secondaire] FROM matable WHERE ([date_principale] Is Not Null Or [date_secondaire] Is Not Null) ORDER BY [date_principale], [date_secondaire];
c'est a dire que si 4 noms autres correspondant au meme nom chef ont tous les 4 des dates non nulles, alors je récupère 4 fois le nom du chef.
Mais comme c'est trié par date, dans la liste, je vais avoir un nom chef répété 4 fois mais à plusieurs lignes d'intervalle, car entre les 4 memes noms chefs, il y aura d'autres noms chefs à cause des dates triées.
Donc comment faire pour avoir une liste avec les memes noms chefs regroupés ensemble et pour chacun d'eux, les dates triées dans l'ordre ?
J'ai essayé un truc avec group by nom (order by nom, date principale, date secondaire group by nom) mais ça me met syntax error. Je crois que c'est parce qu'il faut dans la requete une fonction d'agregation comme le count, mais je n'ai rien à compter...
voilà merci de votre aide
Partager