Problème de group by dans une requete sql dev
VyseR
Messages postés
16
Statut
Membre
-
VyseR Messages postés 16 Statut Membre -
VyseR Messages postés 16 Statut Membre -
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;
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:
- Problème de group by dans une requete sql dev
- Massgrave dev - Accueil - Windows
- Dev c++ - Télécharger - Langages
- Dev home. - Télécharger - Développement
- Dev pascal - Télécharger - Édition & Programmation
- Vous devez disposer d'une autorisation pour effectuer cette action - Guide
2 réponses
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
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
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.
@+
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.
@+