Problème de group by dans une requete sql dev

Fermé
VyseR Messages postés 16 Date d'inscription vendredi 12 septembre 2008 Statut Membre Dernière intervention 11 mars 2009 - 12 sept. 2008 à 09:45
VyseR Messages postés 16 Date d'inscription vendredi 12 septembre 2008 Statut Membre Dernière intervention 11 mars 2009 - 12 sept. 2008 à 10:03
Bonjour,
j'ai un petit souci avec une requête SQL, en fait j'obtiens des doublons et donc je souhaite faire un group by mais j'ai une erreur "not a group by expression".
Si quelqu'un peut m'aider c'est assez urgent, je vous passe ma requête:

select distinct
pro.fampro as "Code Rayon",
fam.libfam as "Nom Rayon",
pro.sfapro as "Code Sous Rayon",
sfa.libfam as "Nom Sous Rayon",
fou.sigtie as "Code Fournisseur",
fou.nomtie as "Nom fournisseur",
rec1.codpro as "Code Produit",
pro.nompro as "Nom Produit"
from eve rec
inner join evp rec1 on rec.numeve = rec1.numeve and rec1.typeve='REC'
inner join pro pro on pro.codpro = rec1.codpro
inner join tsc tsc on tsc.codpro = rec1.codpro and tsc.achvte='A' and
tsc.codsoc=rec.codsoc
inner join tie fou on fou.sigtie = pro.sigfou and fou.typtie ='FOU'
inner join fam fam on fam.codefam=pro.fampro and fam.codesfa=' ' and
fam.codessf=' ' and fam.codesssf1=' ' and fam.typtie='PRO'
inner join fam sfa on sfa.codefam=pro.fampro and sfa.codesfa=pro.sfapro
and sfa.codessf=' ' and sfa.codesssf1=' ' and fam.typtie='PRO'
where rec.codsoc='101' and rec.typeve='REC' and rec.numeve=300096
group by pro.codpro;
A voir également:

2 réponses

VyseR Messages postés 16 Date d'inscription vendredi 12 septembre 2008 Statut Membre Dernière intervention 11 mars 2009 1
12 sept. 2008 à 10:03
Mince en fait j'ai oublié un bout de requete

select distinct
pro.fampro as "Code Rayon",
fam.libfam as "Nom Rayon",
pro.sfapro as "Code Sous Rayon",
sfa.libfam as "Nom Sous Rayon",
fou.sigtie as "Code Fournisseur",
fou.nomtie as "Nom fournisseur",
pro.codpro as "Code Produit",
pro.nompro as "Nom Produit",
(select sum (rec.qtecde) from evp rec where rec.typeve='REC' and
rec.codpro=pro.codpro group by rec.codpro) as "Quantite stock",
rec2.prxvdu as "PRXVDU",
(select distinct sum (rec.qtecde*rec.prxvdu) from evp rec where rec.typeve='REC' and
rec.codpro=pro.codpro group by rec.codpro) as "Valeur stock"
from pro pro
inner join evp rec2 on rec2.codpro = pro.codpro and rec2.typeve='REC'
inner join tie fou on fou.sigtie = pro.sigfou and fou.typtie ='FOU'
inner join fam fam on fam.codefam=pro.fampro and fam.codesfa=' ' and
fam.codessf=' ' and fam.codesssf1=' ' and fam.typtie='PRO'
inner join fam sfa on sfa.codefam=pro.fampro and sfa.codesfa=pro.sfapro
and sfa.codessf=' ' and sfa.codesssf1=' ' and fam.typtie='PRO' group by pro.codpro;

Le problème vient de doublons que je n'arrive pas à effacer de ma liste, le but est de mettre en place un group by sur ma table pro.

Je vous remercie et j'attends toujours votre aide

1
basshero816 Messages postés 115 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 5 août 2010 6
12 sept. 2008 à 09:58
Salut,
En SQL, pour faire un Group By, tu dois effectuer une opérations, du genre Sum(), Count(). Les résultats seront alors groupés en fonction du champ que tu renseigne.

Pour classer des champs si tu ne fais pas d'opérations, il faut utiliser Order By, cela classe tes enregistrements par ordre croissant ou décroissant, en fonction du champ choisi.

@+
-1