IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

problème champ calculé à réutiliser


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Points : 10
    Points
    10
    Par défaut problème champ calculé à réutiliser
    bonjour,

    j'avais posté sans succès il y a quelques jours alors je retente: je cherche à faire ceci :
    select count(*) as NBFiches,
    ROUND(SUM((case
    when monChamp>=(1.05*monChamp2) then 1
    else 0
    end)/NBFiches),2) as TxEcart, ...

    le calcul de TxEcart ne fonctionne pas car je fais appel à NBFiches que je calcule juste au dessus. Y a-t-il un moyen de faire une requête de ce genre?

    Je précise que je ne peux pas pas calculer le count(*) ds une 1ère requête pour le réutiliser par la suite car la requête fait appel à d'autres champs et qu'elle est ordonnée avec un order by qui porte sr un champ calculé.

    Merci par avance de votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Points : 406
    Points
    406
    Par défaut
    Il y a un moyen très simple, c'est de ne pas utiliser l'alias NBFiches mais directement l'instruction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT COUNT(*) as NBFiches,
    ROUND(SUM((CASE
    WHEN monChamp>=(1.05*monChamp2) THEN 1
    ELSE 0
    END)/count(*)),2) as TxEcart,...
    Test ce mode fonctionnement pour voir mais je pense que ça devrait fonctionner.
    Bon courage pour la suite.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Points : 10
    Points
    10
    Par défaut ne fonctionne toujours pas
    ça ne fonctionne pas, message d'erreur : Impossible d'exécuter une fonction d'agrégation sur une expression comportant un agrégat ou une sous-requête.

    En plus, j'aurai par la suite besoin de réutiliser le champ calculé TxEcart par la suite, je ne me serai pas vu faire une requête aussi énorme.

    Visiblement, on ne peut réutiliser les champs calculés dans la même requête que sous access, si qqun pouvait me confirmer ceci, ce serait sympa.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    utilises ton calcul avant dans un join. exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT 
    ROUND(SUM((CASE
    WHEN monChamp>=(1.05*monChamp2) THEN 1
    ELSE 0
    END)/A.NBFiches),2) AS TxEcart,...
    FROM table1
    JOIN (COUNT(*) AS NBFiches from table2 ...) A
    )
    Errare humanum est, perseverare diabolicum (Sénèque)

Discussions similaires

  1. [AC-2003] Problème champ calculé dans requête
    Par alu1308 dans le forum IHM
    Réponses: 2
    Dernier message: 31/07/2013, 11h17
  2. Problèmes champs calculés
    Par ThieBEN dans le forum IHM
    Réponses: 8
    Dernier message: 05/11/2007, 10h31
  3. [Vb.net 2005][ADO.net]Problème Update sur un champs calculé
    Par nirinasolomalala dans le forum Accès aux données
    Réponses: 2
    Dernier message: 13/03/2007, 09h14
  4. Problème graphique & calcul dans champ
    Par jacquesprogram dans le forum Access
    Réponses: 1
    Dernier message: 08/09/2006, 15h09
  5. Problème champs calculés et valeur null
    Par markintell dans le forum Access
    Réponses: 18
    Dernier message: 10/01/2006, 18h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo