Le 12/11/07, bernard coppin <[EMAIL PROTECTED]> a écrit :
>
> Bonjour,


Bonjour,

Je rencontre un problème avec une instruction SQL sous OoBase.
> La base comporte -entre autres- les 2 tables suivantes :
> ARTICLE (ref_art, libelle_art, stock_ini, stock_alerte)
> DETAIL_LIVR ( num_livr, ref_art, qte_livr)
>
> Je veux obtenir la mise à jour du stock, d'où l'instruction suivante :
>
> SELECT ARTICLE.libelle_art, (SUM(DETAIL_LIVR.qte_livr) + ARTICLE.stock_ini
> )
> FROM ARTICLE, DETAIL_LIVR
> WHERE ARTICLE.ref_art=DETAIL_LIVR.ref_art
> GROUP BY ARTICLE.libelle_art, ARTICLE.stock_ini
>
> OoBase me retourne un message d'errer "not in agregate function ou group
> by
> clause ».
>
> Or :
> 1. la structure me semble correcte ( ?)
> 2. cette instruction fonctionne sous MsAccess
> 3. le point 2 me gêne d'autant plus que je « milite » auprès de mes
> collègues
> pour une migration totale vers OOO !
>
> Y aurait-il une syntaxe particulière à respecter ? Où est ma erreur ?


je pense que vous êtes obligé d'utiliser des requêtes imbriquées pour
mélanger des fonctions d'aggrégation avec des champs.
Par exemple :
<sql>

SELECT "Articles"."ref_art", "Articles"."libelle_art",
"Articles"."stock_ini", "Total_livr"."total", ("Articles"."stock_ini" -
"Total_livr"."total") AS "reste_stock"
FROM "Articles", (SELECT"ref_art", SUM("qte_livr") AS "total" FROM
"Detail_livr" GROUP BY "ref_art") "Total_livr"
WHERE "Articles"."ref_art" = "Total_livr"."ref_art"

</sql>
Testé sous OOo 2.3 en mode sql direct (c'est à dire cocher l'icone sql dans
l'éditeur de requêtes sql)
Je joins un fichier exemple et une copie perso au cas où le fichier joint ne
passe pas sur la liste.

Merci pour votre aide.


Bonne journée,

BC


Manuel
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à