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

Requêtes et SQL. Discussion :

Soustraction des résultats des deux requêtes sql en access


Sujet :

Requêtes et SQL.

  1. #21
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 554
    Points
    24 554
    Par défaut
    Je viens de regarder ton fichier, soit c'est une blague soit tu devrais changer de boulot.

    Les données sont incomplètes pas de TRI =2 !

    Trop d'incertitudes, trop d'approximation, données incomplètes. Comment tu espères arriver à un but comme ça !

    N'étant pas pas magicien, je préfère passer la main plutot que de faire perdre ton temps (et le mien).

  2. #22
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 52
    Points : 15
    Points
    15
    Par défaut
    Je suis désole mais j'ai mets une copie de la base vu la quantité dans donnés

    Voici la base complète sachant qu elle représente juste une partie des données

    -dans la requête T_MdaJour_AnalyseCroise:
    j'ai fait la jointure avec de la table T_MDAJour avec la table T_Codes_Evenements

    -dans la requête T_MDAJourCopie:
    j'ai calculé le total d'effectif qui doit être présent pour les 31 jour

    -dans la requête T_MDAJourCopie2:
    j'ai calculé le total d'effectif absent pour les 31 jour

    -dans la requête R_Somme:

    j'ai calculé la soustraction du 2 résultats pour calculé le total d 'effectif présent réellement.

    Sachant chaque matricule il a un code inscrit ( doit être présent) mais il peut avoir 2 codes lorsque il est absent.


    j espère que j 'ai bien explique cette fois ci



    Merci d'avance
    Fichiers attachés Fichiers attachés

  3. #23
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut helas et bienvenu samsamo,

    helas voulait te dire:
    "difference sur un DCount des inscrits et un DCount sur les absents"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dcount("*","matable","code=0")-Dcount("*","matable","code<>0")

  4. #24
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    en faite la soustraction d'une valeur avec un NULL va renvoyer NULL...
    Il faut donc transformer chaque NULL en numérique 0.
    La fonction NZ() permet de faire cette opération.

    Par exemple avec r_somme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT Nz(Sum([THEO].[1]))-Nz(Sum([Abs].[1])) AS 1, Nz(Sum([THEO].[2]))-Nz(Sum([Abs].[2])) AS 2, Nz(Sum([THEO].[3]))-Nz(Sum([Abs].[3])) AS 3, Nz(Sum([THEO].[4]))-Nz(Sum([Abs].[4])) AS 4, Nz(Sum([THEO].[5]))-Nz(Sum([Abs].[5])) AS 5, Nz(Sum([THEO].[6]))-Nz(Sum([Abs].[6])) AS 6, Nz(Sum([THEO].[7]))-Nz(Sum([Abs].[7])) AS 7, Nz(Sum([THEO].[8]))-Nz(Sum([Abs].[8])) AS 8, Nz(Sum([THEO].[9]))-Nz(Sum([Abs].[9])) AS 9, Nz(Sum([THEO].[10]))-Nz(Sum([Abs].[10])) AS 10, Nz(Sum([THEO].[11]))-Nz(Sum([Abs].[11])) AS 11, Nz(Sum([THEO].[12]))-Nz(Sum([Abs].[12])) AS 12, Nz(Sum([THEO].[13]))-Nz(Sum([Abs].[13])) AS 13, Nz(Sum([THEO].[14]))-Nz(Sum([Abs].[14])) AS 14, Nz(Sum([THEO].[15]))-Nz(Sum([Abs].[15])) AS 15, Nz(Sum([THEO].[16]))-Nz(Sum([Abs].[16])) AS 16, Nz(Sum([THEO].[17]))-Nz(Sum([Abs].[17])) AS 17, Nz(Sum([THEO].[18]))-Nz(Sum([Abs].[18])) AS 18, Nz(Sum([THEO].[19]))-Nz(Sum([Abs].[19])) AS 19, Nz(Sum([THEO].[20]))-Nz(Sum([Abs].[20])) AS 20, Nz(Sum([THEO].[21]))-Nz(Sum([Abs].[21])) AS 21, Nz(Sum([THEO].[22]))-Nz(Sum([Abs].[22])) AS 22, Nz(Sum([THEO].[23]))-Nz(Sum([Abs].[23])) AS 23, Nz(Sum([THEO].[24]))-Nz(Sum([Abs].[24])) AS 24, Nz(Sum([THEO].[25]))-Nz(Sum([Abs].[25])) AS 25, Nz(Sum([THEO].[26]))-Nz(Sum([Abs].[26])) AS 26, Nz(Sum([THEO].[27]))-Nz(Sum([Abs].[27])) AS 27, Nz(Sum([THEO].[28]))-Nz(Sum([Abs].[28])) AS 28, Nz(Sum([THEO].[29]))-Nz(Sum([Abs].[29])) AS 29, Nz(Sum([THEO].[30]))-Nz(Sum([Abs].[30])) AS 30, Nz(Sum([THEO].[31]))-Nz(Sum([Abs].[31])) AS 31
    FROM T_MdaJourCopie AS THEO INNER JOIN T_MdaJourCopie2 AS ABS ON (THEO.[A0-SIGLE2] = ABS.[A0-SIGLE2]) AND (THEO.[A0-SIGLE4] = ABS.[A0-SIGLE4]) AND (THEO.[A0-SIGLE3] = ABS.[A0-SIGLE3]) AND (THEO.[A0-SIGLE2] = ABS.[A0-SIGLE2]) AND (THEO.[CO-TYPCTR] = ABS.[CO-TYPCTR]) AND (THEO.[NH-FAMPRO] = ABS.[NH-FAMPRO]) AND (THEO.[NH-POPULO] = ABS.[NH-POPULO]);
    Philippe

  5. #25
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 52
    Points : 15
    Points
    15
    Par défaut
    bonjour philben;

    Je vous remercie beaucoup pour votre réponse ça marche très bien.

    mais j'ai un autre probleme quand j'ai voulu afficher les résultat de la somme en page html en utilisant un code php avec une requête sql

    elle m'affiche cette erreur

    Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Pilote ODBC Microsoft Access] Fonction 'Nz' non définie dans l'expression., SQL state 37000 in SQLExecDirect in C:\User\wamp\www\SVEFF\Presenteisme1\acceuil_Pres.php on line 444


    Sachant que toutes les autres s'affiche très bien

    NB: je travaille sur une application PHP pour suivre les effectifs ma base de donnes et en access et j'utilise ODBC pour se connecter avec ma base et des pages html pour afficher mes résultats.

  6. #26
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 52
    Points : 15
    Points
    15
    Par défaut
    bonjour;

    Je vous remercie beaucoup vodiem;

    mais je suis désolé j'ai pas bien compris votre solution ou je dois l'utiliser??.

    dans la requête de soustraction??

  7. #27
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    tu crées une nouvelle requête. en affichage SQL tu mets le code:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Dcount("*","matable","code=0")-Dcount("*","matable","code<>0")
    en remplaçant "matable" par le nom de la table et éventuellement "code" pour le champ contenant le code inscrit/absence.

  8. #28
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    ok, il faut donc éviter la fonction NZ()...

    Une autre solution qui n'est pas dans le top ten de la propreté consiste à modifier le count retourné par tes deux RAC qui alimentent ta requête r_Somme comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TRANSFORM  "0" & Count(T_MdaJour_AnalyseCroisy.MATCLE) AS CompteDeMATCLE
    Donc, si un compte est null il affichera 0 (type string).

    Ainsi la requête r_somme d'origine (sans les NZ()) devrait fonctionner car SUM va convertir les valeurs en numérique.

    Je n'ai pas testé avec odbc mais ça fonctionne avec Access.

    Philippe

  9. #29
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 52
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par vodiem Voir le message
    tu crées une nouvelle requête. en affichage SQL tu mets le code:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Dcount("*","matable","code=0")-Dcount("*","matable","code<>0")
    en remplaçant "matable" par le nom de la table et éventuellement "code" pour le champ contenant le code inscrit/absence.
    Bonjour vodeim;

    je vous remercie beaucoup pour votre réponse ça marche très bien.

    Merci Beaucoup.

  10. #30
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 52
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par philben Voir le message
    ok, il faut donc éviter la fonction NZ()...

    Une autre solution qui n'est pas dans le top ten de la propreté consiste à modifier le count retourné par tes deux RAC qui alimentent ta requête r_Somme comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TRANSFORM  "0" & Count(T_MdaJour_AnalyseCroisy.MATCLE) AS CompteDeMATCLE
    Donc, si un compte est null il affichera 0 (type string).

    Ainsi la requête r_somme d'origine (sans les NZ()) devrait fonctionner car SUM va convertir les valeurs en numérique.

    Je n'ai pas testé avec odbc mais ça fonctionne avec Access.

    Philippe
    Bonjour Philippe;

    je vous remercie beaucoup pour votre réponse ça marche très bien même avec l'ODBC.

    Merci Beaucoup.

  11. #31
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    ma solution est très certainement la plus rapide.

    Désolé Diem, pour une fois que je peux exulter de croire que je peux te battre

    A+ mon ami

    Philippe

  12. #32
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    normal, c'est une fusion de deux discussion. on ne connaissait pas alors avec helas le sql de départ. ;P

    j'eusse su que tu étais là j'aurais chatouillé quelques poux...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [WD15] Soustraction des résultats de deux requêtes
    Par djenny dans le forum WinDev
    Réponses: 11
    Dernier message: 30/01/2014, 15h25
  2. [XL-2007] Créer un graphique à partir des résultats d'une requête SQL
    Par jpclabaux dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 15/04/2013, 22h12
  3. Réponses: 3
    Dernier message: 30/06/2009, 19h16
  4. [Requête]Concaténation des résultats d'une requête SQL
    Par teks9 dans le forum Développement
    Réponses: 2
    Dernier message: 01/09/2008, 15h34

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