Problème avec une requête (soupçon orienté vers le GROUP BY)

Résolu
6xavier6 Messages postés 51 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 7 février 2020 - 22 janv. 2009 à 11:11
6xavier6 Messages postés 51 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 7 février 2020 - 22 janv. 2009 à 12:17
Bonjour,

J'ai un problème avec une requête en SQL.
Apparemment mon GROUP BY ne fonctionnerait pas bien (enfin comprenait que j'ai du me planter lamentablement dans la requête loool).

Voici la reqête SQL :

SELECT convert(varchar(10), CNDTCR, 103) as "Date",
    CNLITM,
    IBDSC1,
    ABALPH,
    SUM(CNPQOH),
    SUM(CNUORG),
    CNLOTN,
    CNDELN,
    CNRORN,
    CNNREC
    FROM F57700, SH0101, SHARTICLE
    WHERE CNLOCN = 'RECA' AND
    CNLOTS = 'A' AND
    CNVEND = ABAN8 AND
    CNLITM = IBLITM AND
    CNMCU = IBMCU AND
    CNDTCR >= convert(datetime, '11/11/2008', 103)
    GROUP BY CNLOTN, CNLITM, CNDTCR, IBDSC1, ABALPH, CNDELN, CNRORN, CNNREC
    ORDER BY convert(varchar(10), CNDTCR, 103), CNLITM

Bon c'est vrai que balancé comme ça c'est pas tres explicite, mais je vois pas trop quelles informations je peux donner en plus.

Comment je sais que la requête ne fonctionne pas : par exemple les trois premieres ligne de mon résultat sont dissociées alors quelle devrait ne faire qu'une seule ligne avec le total des champs CNPQOH et CNUORG.

Je suis dispo bien sûr pour donner toutes informations supplémentaires pour que vous puissiez me dépanner dans les meileurs conditions.

En vous remerciant d'avance

6xavier6

3 réponses

Ptid0m Messages postés 21 Date d'inscription vendredi 16 janvier 2009 Statut Membre Dernière intervention 15 mai 2009 1
22 janv. 2009 à 11:52
bonjour,
SELECT convert(varchar(10), CNDTCR, 103) as "Date",
    CNLITM,
    IBDSC1,
    ABALPH,
    SUM(CNPQOH),
    SUM(CNUORG),
    CNLOTN,
    CNDELN,
    CNRORN,
    CNNREC
    FROM F57700, SH0101, SHARTICLE
    WHERE CNLOCN = 'RECA' AND
    CNLOTS = 'A' AND
    CNVEND = ABAN8 AND
    CNLITM = IBLITM AND
    CNMCU = IBMCU AND
    CNDTCR >= convert(datetime, '11/11/2008', 103)
    GROUP BY convert(varchar(10), CNDTCR, 103) ,
    CNLITM,
    IBDSC1,
    ABALPH,
CNLOTN,
    CNDELN,
    CNRORN,
    CNNREC

    ORDER BY convert(varchar(10), CNDTCR, 103), CNLITM
3
6xavier6 Messages postés 51 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 7 février 2020
22 janv. 2009 à 12:17
A non j'ai fait aussi une autre modification.

Le champs IBDSC1 est un champs assez long. Il est possible que SQL ne le vois pas en totalité et tronque la clause GROUP BY en plein milieu.

Je dit ceci en tant que théorie, je ne l'ai pas tester, c'est peut être faux mais si vous avez ce problème essayer de mettre les grands champs à la fin de la requête.
3
6xavier6 Messages postés 51 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 7 février 2020
22 janv. 2009 à 12:14
Loool, j'ai pas tout comprit,
cette méthode je l'avais essayer plusieurs fois avec un gros message d'erreur à chaque fois. Je me suis dit allez retente une fois et la c'est passé.

Tu as dû me donner une masse d'onde positive merci.
0
Rejoignez-nous