[WD10] Plantage avec l'éditeur de requête

Le
Olivier
Hello, j'ai un disfonctionnement avec l'éditeur de requête :

J'essaie de sortir une statistique avec un calcul de coefficient.
Pour ce coefficient, je dois diviser une somme, calculée avec la
fonction somme (ici "la somme de commande") par un comptage calculé sur
le nombre de commandes (le nombre de commande).Mais si je mets un calcul
qui porte sur un des champs calculés, j'ai un plantage :

Erreur d'initialisation de la requête - Une erreur système est survenue
blabla transmettre au support technique.

Ce qui est marrant, c'est que même si je crée ma requête a la main en
SQL, j'ai la même erreur lors du test par F9.

Vous avez deja eu ce genre de problème ?

Code SQL de test :
***********************************
SELECT
client.IDclient AS Numero_client,
client.Nom AS Nom,
client.Prénom AS Prénom,
COUNT(*) AS nombre_commande,
SUM(client.montant) AS total_montant,
(total_montant / nombre_commande ) as coefficient
FROM
client,
commande
WHERE
Membres.IDMembres = Locations.IDMembres

GROUP BY
client.IDclient ,
client.Nom,
client.Prénom
************************************


Amicalement

Olivier
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
mat
Le #14637431
Olivier wrote:

Erreur d'initialisation de la requête - Une erreur système est survenue
... blabla ... transmettre au support technique.

Ce qui est marrant, c'est que même si je crée ma requête a la main en
SQL, j'ai la même erreur lors du test par F9.




Bonjour,
comment la requête sait faire la jointure entre client et commande?
Salutations
Mat
Olivier
Le #14637421
mat a écrit :
Olivier wrote:

Erreur d'initialisation de la requête - Une erreur système est
survenue ... blabla ... transmettre au support technique.

Ce qui est marrant, c'est que même si je crée ma requête a la main en
SQL, j'ai la même erreur lors du test par F9.




Bonjour,
comment la requête sait faire la jointure entre client et commande?
Salutations
Mat



J'ai une relation en client et commande :

client.ID == 0,n ========= 1;1==>commandes

Si je retire le calcul qui est fait sur les deux autre champs calculés
cela fonctionne.


Olivier
mat
Le #14637401
Olivier wrote:
J'ai une relation en client et commande :

client.ID == 0,n ========= 1;1==>commandes





cela n'est valable que pour les contraintes. Les requêtes ne peuvent
fonctionner sans jointure.

Mat
Olivier
Le #14637391
mat a écrit :
Olivier wrote:
J'ai une relation en client et commande :

client.ID == 0,n ========= 1;1==>commandes





cela n'est valable que pour les contraintes. Les requêtes ne peuvent
fonctionner sans jointure.

Mat




Je dois avouer que je ne comprends pas trop... si je fais la requête
"normale" c'est a dire sans faire de calcul, simplement je demande la
somme des commandes par client et le nombre de commande, pas de soucis :

IDclient Nom client TotalCde NbreCde
123 Trucmuche 120.00 10
563 Machinchose 125.60 5

Mais si je veux insérer un calcul entre les deux valeurs TotalCde et
NbreCde : boum plantage, cela me semble plus un dysfonctionnement qu'une
erreur de ma part. Sous d'autre SGDB, il me semble avoir déja fait ce
genre de chose sans soucis. Et l'erreur qui s'affiche n'est pas une
erreur procédure "Vous n'avez pas le droit de ...", mais bien une erreur
prgramme "Une erreur systeme est survenue ..."

amicalement

Olivier
mat
Le #14637321
je propose une visite chez http://sqlpro.developpez.com/ ou bien
http://sqlzoo.net/

Salutations
Mat
mat
Le #14637311
Olivier wrote:

Mais si je veux insérer un calcul entre les deux valeurs TotalCde et
NbreCde : boum plantage, cela me semble plus un dysfonctionnement qu'une
erreur de ma part.




Je ne crois pas. Dans l'éditeur la liaison est probablement fait
automatiquement, donc une autre possible raison du problème est que,
pour autant que je sache, tu ne peux pas utiliser une valeur nommé "AS"
au même niveau. Donc, à mon avis il faut répéter

SUM(client.montant) / count(*) AS coefficient

pour que ça marche.

Mat
Publicité
Poster une réponse
Anonyme