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 MySQL Discussion :

requete sur plusieurs date pour comparaison


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut requete sur plusieurs date pour comparaison
    Bonjour à tous,

    Bonne année à tous

    Je dispose dans une base de donnée d'information mise à jour quotidiennement.

    J'ai une requête assez simple qui fait le nombre de visite (sum), le nombre de vue etc... sur une période donnée (exemple du 01/12/2013 au 31/12/2013)

    Je voudrais arriver a faire (a mettre en parallèle) cette même requête pour le N-1 (01/12/2012 au 31/12/2013)

    Visuellement je voudrais affiche ceci ( et si possible faire des calcul comparatif):
    nombre de visite | Nombre de vue |nombre de visite | Nombre de vue |
    ( du 01/12/2013 au 31/12/2013) (01/12/2012 au 31/12/2013)


    Merci d'avance pour votre aide

    guigui69

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Avoir votre requête actuelle aurait été un bon début.

    Sur le principe, vous pouvez faire un case pour ne sommer que les valeurs qui correspondent à votre critère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT ...
        SUM(CASE WHEN LaDate BETWEEN '20131201' AND '20131231' THEN LaColonneNbVisite END) AS VisiteMoisPrecedent
    , SUM(CASE WHEN LaDate BETWEEN '20121201' AND '20131201' THEN LaColonneNbVisite END) AS VisiteAneePrecedente
    FROM ...
    GROUP BY ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut
    Merci,

    je reviens avec ma requete

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut
    Bonjour à tous ,


    Voici la requete:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SELECT `Marque`,`PointdeVente`,count(*) as cde, SUM(Societe) as societe, sum(`Entretien`) as entretien, SUM(IF(`Organisme` <> "0", 1, 0)) as fi, sum(`Box`) as box, sum(`CLD`) as cld,
     
    round((sum(`Entretien`)/(count(*)-sum(Societe)))*100,2) as T_entretien,
    round(SUM(IF(`Organisme` <> "0", 1, 0))/(count(*))*100,2) as T_fi,
    round((sum(`Box`)/(count(*)-SUM(Societe)))*100,2) as T_box,
    round((sum(`CLD`)/(count(*)-SUM(Societe)))*100,2) as T_cld,obj,DATEDIFF("2013-12-31","2013-12-01")
    FROM `table 2` 
    INNER JOIN objectif ON objectif.id_concession=`table 2`.`PointdeVente` AND mois_obj=MONTH("2013-12-01") AND annee_obj=YEAR("2013-12-01")
    WHERE `DateCommande`
    BETWEEN  "2013-12-01" AND "2013-12-31" 
    AND `PointdeVente`='1'
    GROUP BY `Marque`,`PointdeVente`
    Cette requête fonctionne mais je voudrais ajouter dans le select la valeur cde de l'année N-1. Il faut que je rajouter une sous requete dans ma requete ?

    merci d'avance pour votre aide

    guigui69

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,


    rajoutez dans la clause where la 2eme condition sur les dates (séparé par un OR)

    Au niveau de la selection, à l'intérieur de vos SUM rajouter la condition sur la plage de date.

  6. #6
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par guigui69 Voir le message
    Il faut que je rajouter une sous requete dans ma requete ?
    Non, vous pouvez faire comme je vous l'ai indiqué : mettre des cases dans chacune de vos fonctions d'agrégat. Il faudra aussi élargir le filtre (le between sur les dates) pour ne pas filtrer les données de l’année précédente

Discussions similaires

  1. [AC-2010] Requete sur plusieurs dates avec cumul
    Par LAURENTN45 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 17/01/2013, 19h05
  2. requete sur plusieurs bdd
    Par Mandotnet dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/03/2006, 23h54
  3. Requete sur plusieurs enregistrements !
    Par Mathelec dans le forum Langage SQL
    Réponses: 14
    Dernier message: 12/03/2006, 14h27
  4. requete sur plusieurs tables
    Par manaboko dans le forum Requêtes
    Réponses: 6
    Dernier message: 13/12/2005, 17h07
  5. [DB2] requete sur plusieurs schema
    Par xjnoel dans le forum DB2
    Réponses: 1
    Dernier message: 22/11/2004, 12h39

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