KodutFR
Posté le 21 mars 2013 à 08:30:01
ah ok... Pourtant j'ai deja fait des requêtes avec des calculs et des group by sur un seul champ il me semble que ca marchait.
Il y a des SGBD qui le tolèrent dans certains cas mais en principe c'est faux.
Ceci s'explique par le fait que pour que ta somme ait un sens
càd pour le cas qui nous concerne
[nom_entreprise, nom_client, tel_client, SUM(montant_facture )]
Il faut bien que les lignes qu'il te retourne en résultat soient uniques par sur la combinaison [nom_entreprise, nom_client, tel_client].
Si tu avais un résultat truc comme
IBM, Jean, +51 XXX, 1500
IBM, Jean, +51 XXX, 800
Oracle, Pierre, +21 YYY, 2000
Tu pourrais te demander pourquoi ce gros malin n'a pas groupé les 2 premières lignes IBM pour t'en retourner une seule avec 2300 comme somme puisqu'elles sont identiques?
C'est pour empêcher cela qu'on t'oblige à utiliser GROUP BY sur toutes les colonnes non "calculées".