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

Langage SQL Discussion :

Requete de stat qui plante quand rien pour un mois


Sujet :

Langage SQL

  1. #1
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 305
    Points : 1 383
    Points
    1 383
    Par défaut Requete de stat qui plante quand rien pour un mois
    Ma requete me renvoie le nombre d'éléments pour certains mois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT COUNT (DISTINCT a1.acu_idy), COUNT (DISTINCT a2.acu_idy),
           COUNT (DISTINCT a3.acu_idy), COUNT (DISTINCT a4.acu_idy)
      FROM stase_accueil a1, stase_accueil a2, stase_accueil a3, stase_accueil a4
     WHERE TO_NUMBER (TO_CHAR (a1.acu_dateaccueil, 'MM')) = 2
       AND TO_NUMBER (TO_CHAR (a2.acu_dateaccueil, 'MM')) = 3 
       AND TO_NUMBER (TO_CHAR (a3.acu_dateaccueil, 'MM')) > 1
       AND TO_NUMBER (TO_CHAR (a3.acu_dateaccueil, 'MM')) < 4;
    Elle fonctionne bien quand j'ai des stase_accueil pour le mois : 12 - 1 - 13 - 14
    Mais si je remplace '3' par '12' par exemple alors j'obtient : 0 - 0 - 0 - 0 au lieu de 12 - 0 - 13 - 14.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 392
    Points
    28 392
    Par défaut
    C'est normal : l'une des tables du produit cartésien est vide (COUNT=0), donc aucune valeur n'est retournée.

    Il faut passer par des sous-requêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    SELECT a1.CNT
     , a2.CNT
        , a3.CNT
     , a4.CNT
    FROM
      ( SELECT COUNT (DISTINCT acu_idy) as CNT
       FROM stase_accueil 
       WHERE TO_NUMBER (TO_CHAR (acu_dateaccueil, 'MM')) = 2
      ) AS a1
     CROSS JOIN
      ( SELECT COUNT (DISTINCT acu_idy) as CNT
       FROM stase_accueil 
       WHERE TO_NUMBER (TO_CHAR (acu_dateaccueil, 'MM')) = 3
      ) AS a2
     CROSS JOIN
      ( SELECT COUNT (DISTINCT acu_idy) as CNT
       FROM stase_accueil 
       WHERE TO_NUMBER (TO_CHAR (acu_dateaccueil, 'MM')) > 1
      ) AS a3
     CROSS JOIN
      ( SELECT COUNT (DISTINCT acu_idy) as CNT
       FROM stase_accueil 
       WHERE TO_NUMBER (TO_CHAR (acu_dateaccueil, 'MM')) < 4
      ) AS a4
    ;

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 305
    Points : 1 383
    Points
    1 383
    Par défaut
    Merci. Maintenant il ne me reste qu'à traduire ça en hql...

    Il y a une petite erreur dans le script : il faut supprimer les AS devant a1, a2, a3 et a4 (avec Oracle en tout cas)

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 392
    Points
    28 392
    Par défaut
    Citation Envoyé par Christophe P.
    Il y a une petite erreur dans le script : il faut supprimer les AS devant a1, a2, a3 et a4 (avec Oracle en tout cas)
    Oracle ne respecte pas la norme ANSI...

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

Discussions similaires

  1. tMsgBox de type question qui plante quand on clique sur Annuler
    Par cutkiller042 dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 12/09/2012, 20h30
  2. XMLAGG qui ne renvoie rien pour une View
    Par MissTitou dans le forum Requêtes
    Réponses: 0
    Dernier message: 07/10/2011, 21h52
  3. Programme qui plante quand je passe une string.
    Par z980x dans le forum SL & STL
    Réponses: 4
    Dernier message: 23/01/2009, 00h40
  4. Application qui plante quand lancé par sans débugage
    Par bossun dans le forum Général Dotnet
    Réponses: 9
    Dernier message: 12/07/2007, 12h08
  5. [C#] Form qui plante quand on clic ailleurs..
    Par jacpapac dans le forum Windows Forms
    Réponses: 6
    Dernier message: 18/04/2006, 13h51

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