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 :

comparer 2 requetes [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Membre averti
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Points : 416
    Points
    416
    Par défaut comparer 2 requetes
    Bonjour,

    J'ai fais une requete qui compare le déclaré et le facturé. Les deux requetes sont reliées par 3 jointures (Date, carte, type_carb).

    Je fais bien ressortir quand il y a plus de facturé que de déclaré sur une carte ou le contraire mais je n'ai pas si on déclare un type_carb qui n'est pas facturé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT req_rapp_75.Date, Req_somme_declare.Origine_Carb, Req_somme_declare.SommeDeVolume_Carb AS Déclaré, [SommeDeVolume_Carb]-[Facture] AS difference, Req_somme_declare.mois_mvt, req_rapp_75.type, req_rapp_75.Facture
    FROM req_rapp_75 INNER JOIN Req_somme_declare ON (req_rapp_75.nom_carte = Req_somme_declare.Origine_Carb) AND (req_rapp_75.Date = Req_somme_declare.mois_mvt) AND (req_rapp_75.type = Req_somme_declare.Type_Carb)
    WHERE (((IIf([SommeDeVolume_Carb]-[Facture]>4,"alerte",IIf([Facture]-[SommeDeVolume_Carb]>4,"alerte","ok")))="alerte"));
    Exemple:
    Déclaré:novembre, carte1, 35, super
    facturé: pas de super facturé pour la carte 1 au mois de novembre
    Les 35 ne ressortent pas puisque les jointures ne comparent que les resultats égaux.

    Avez vous une solutions?

    Merci par avance

    Seb

  2. #2
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 591
    Points
    3 591
    Billets dans le blog
    8
    Par défaut
    Salut
    Peux-tu montrer:...
    • la structure des tables utilisées par les requêtes
    • le code sql des deux premières requêtes
    ..?

  3. #3
    Membre averti
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Points : 416
    Points
    416
    Par défaut
    Citation Envoyé par alassanediakite Voir le message
    Salut
    Peux-tu montrer:...
    • la structure des tables utilisées par les requêtes
    • le code sql des deux premières requêtes
    ..?
    ça va etre dur car ce sont des sous/sous/sous/requetes

    je vais essayé:
    concernant la partie facture req_rapp_75:
    SELECT Req_somme_facture_75.Date, carte_75.nom_carte, Req_somme_facture_75.type, Req_somme_facture_75.SommeDevolume AS Facture
    FROM Req_somme_facture_75 LEFT JOIN carte_75 ON Req_somme_facture_75.N°_carte = carte_75.N_carte;
    [/CODE]
    La table carte_75:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    N°: numéro auto
    N°_carte: texte
    nom_carte: texte
    Pour la requete Req_somme_facture_75 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     SELECT Month([Date_mvt]) AS [Date], facture_75.N°_carte, IIf([type_carb] Like "super*","super","GAZOLE") AS type, Sum(facture_75.volume) AS SommeDevolume
    FROM facture_75
    GROUP BY Month([Date_mvt]), facture_75.N°_carte, IIf([type_carb] Like "super*","super","GAZOLE");
    la table facture_75:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    N°: numéro auto
    N°_carte: texte
    libelle_carte: texte
    date_mvt:Date/Heure
    type_carb:Texte
    volume:Numérique
    code_engin:Numérique
    La partie des requetes de la factuartions sont faites, maintenant les requetes des déclarations:
    Req_somme_declare:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT Month([Date_Mvt]) AS mois_mvt, Req_Mvt_annee_en_cours.Type_Carb, Req_Mvt_annee_en_cours.Origine_Carb, Sum(Req_Mvt_annee_en_cours.Volume_Carb) AS SommeDeVolume_Carb
    FROM Req_Mvt_annee_en_cours
    GROUP BY Month([Date_Mvt]), Req_Mvt_annee_en_cours.Type_Carb, Req_Mvt_annee_en_cours.Origine_Carb
    ORDER BY Req_Mvt_annee_en_cours.Origine_Carb;
    Req_Mvt_annee_en_cours:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     SELECT dbo_Carb_Mvt_ST5_ST6.Code_Site, dbo_Carb_Mvt_ST5_ST6.Date_Mvt, dbo_ENGIN_VUE.CodeEngin, dbo_Carb_Mvt_ST5_ST6.Type_Perception, dbo_Carb_Mvt_ST5_ST6.Origine_Carb, dbo_Carb_Mvt_ST5_ST6.Type_Carb, dbo_Carb_Mvt_ST5_ST6.Volume_Carb, dbo_Carb_Mvt_ST5_ST6.Potentiel_Kmjour, IIf(DLast("Date_Mvt","dbo_Carb_Mvt_ST5_ST6","[Codeident]=" & [Codeident] & " And [Date_Mvt] < " & Format([Date_Mvt],"\#mm\/dd\/yyyy\#"))<=[chgt_comptKM] And [Date_Mvt]>=[chgt_comptKM],"chgt compteur",DLast("Potentiel_Kmjour","dbo_Carb_Mvt_ST5_ST6","[Codeident]=" & [Codeident] & " And [Date_Mvt] < " & Format([Date_Mvt],"\#mm\/dd\/yyyy\#"))) AS Ancien_Potentiel_Km, IIf([Ancien_Potentiel_Km]="chgt compteur",0,[Potentiel_Kmjour]-[Ancien_Potentiel_Km]) AS parcouru, IIf([parcouru]>0,([dbo_Carb_Mvt_ST5_ST6]![Volume_Carb]*100)/[parcouru],0) AS Conso_au_100km, dbo_Carb_Mvt_ST5_ST6.Potentiel_Hjour, IIf(DLast("Date_Mvt","dbo_Carb_Mvt_ST5_ST6","[Codeident]=" & [Codeident] & " And [Date_Mvt] < " & Format([Date_Mvt],"\#mm\/dd\/yyyy\#"))<=[chgt_comptHM] And [Date_Mvt]>=[chgt_comptHM],"chgt compteur",DLast("Potentiel_Hjour","dbo_Carb_Mvt_ST5_ST6","[Codeident]=" & [Codeident] & " And [Date_Mvt] < " & Format([Date_Mvt],"\#mm\/dd\/yyyy\#"))) AS Ancien_Potentiel_moteur, IIf([Ancien_Potentiel_moteur]="chgt compteur",0,[Potentiel_Hjour]-[Ancien_Potentiel_moteur]) AS Nb_heures_moteur, IIf([Nb_heures_moteur]>0,([dbo_Carb_Mvt_ST5_ST6]![Volume_Carb]*1)/[Nb_heures_moteur],0) AS Conso_litre_heure_mot, dbo_Carb_Mvt_ST5_ST6.Potentiel_Hequipement, IIf(DLast("Date_Mvt","dbo_Carb_Mvt_ST5_ST6","[Codeident]=" & [Codeident] & " And [Date_Mvt] < " & Format([Date_Mvt],"\#mm\/dd\/yyyy\#"))<=[chgt_comptHE] And [Date_Mvt]>=[chgt_comptHE],"chgt compteur",DLast("Potentiel_Hequipement","dbo_Carb_Mvt_ST5_ST6","[Codeident]=" & [Codeident] & " And [Date_Mvt] < " & Format([Date_Mvt],"\#mm\/dd\/yyyy\#"))) AS Ancien_Potentiel_equipement, IIf([Nb_heures_equipement]>0,([dbo_Carb_Mvt_ST5_ST6]![Volume_Carb]*1)/[Nb_heures_equipement],0) AS Conso_litre_heure_equi, IIf([Ancien_Potentiel_equipement]="chgt compteur",0,[Potentiel_Hequipement]-[Ancien_Potentiel_equipement]) AS Nb_heures_equipement, dbo_Carb_Mvt_ST5_ST6.Commentaires, Format([date_chgt_ComptKM],"dd/mm/yyyy") AS chgt_comptKM, Format([date_chgt_ComptHM],"dd/mm/yyyy") AS chgt_comptHM, Format([date_chgt_ComptHE],"dd/mm/yyyy") AS chgt_comptHE, dbo_Carb_Mvt_ST5_ST6.Codeident, Month([Date_Mvt]) AS mois_d, Year([Date_Mvt]) AS Expr1
    FROM (dbo_Carb_Mvt_ST5_ST6 LEFT JOIN dbo_ENGIN_VUE ON dbo_Carb_Mvt_ST5_ST6.Codeident = dbo_ENGIN_VUE.CodeIdentite) LEFT JOIN Req_chgt_compt_2011 ON dbo_ENGIN_VUE.CodeEngin = Req_chgt_compt_2011.CodeEngin
    WHERE (((Year([Date_Mvt]))=IIf(Month(Now())=1,Year(Now())-1,Year(Now()))));
    Merci encore

    Seb

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DATE SQL] Comparer écart de minutes dans la requete
    Par Joe Le Mort dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/05/2007, 12h37
  2. comparer date dans requete
    Par lazzeroni dans le forum Oracle
    Réponses: 1
    Dernier message: 23/05/2006, 16h55
  3. Requete pour comparer tables sur 2 schemas
    Par Kannuki dans le forum Oracle
    Réponses: 28
    Dernier message: 09/02/2006, 15h40
  4. [MySQL] Comparer des info date dans une requete SQL
    Par kaygee dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 06/01/2006, 22h56
  5. [MySQL] Comparer le resultat d'une requete avec des fichiers
    Par Anakior dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/12/2005, 12h11

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