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 :

Ma requête ne fonctionne pas


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 55
    Points : 31
    Points
    31
    Par défaut Ma requête ne fonctionne pas
    Bonjour,

    La requête suivante a un souci dans sa construction. Je souhaite alimenter une base. dans laquelle les données comme Ano Grave, Ano Mineure etc soient regroupées dans une seule Colonne "Erreur"

    NB les données Collaborateur et Date sont aussi variables.

    Merci pour votre aide


    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    INSERT INTO  COINCOUIN ( [Date], Collaborateur,Erreur) 
     
    SELECT [Date], [Entrer le collaborateur] AS Collaborateur, erreur AS TYPE_ANOMALIE 
        ,   SUM(somme) AS TOTAL_PAR_ANOMALIE
    FROM    (   SELECT  [Ano Grave 1]   AS ERREUR
                    ,   count(*)        AS somme
                FROM    [SUPERVISION PERMANENTE]
                WHERE  [Ano Grave 1] IS NOT NULL AND[Collaborateur]=[Entrer le collaborateur] AND [Date] BETWEEN [Début] AND [Fin] 
                GROUP BY [Ano Grave 1] 
            UNION ALL
                SELECT  [Ano Grave 2]   AS ERREUR
                    ,   count(*)        AS somme
                FROM    [SUPERVISION PERMANENTE]
                 WHERE  [Ano Grave 2] IS NOT NULL AND [Collaborateur]=[Entrer le collaborateur] AND [Date] BETWEEN [Début] AND [Fin] 
                GROUP BY [Ano Grave 2]
            )   AS Erreurs
    GROUP BY Erreur;
     
    UNION ALL
     
    SELECT [Date],  [Entrer le collaborateur] AS Collaborateur, erreur AS TYPE_ANOMALIE 
        ,   SUM(somme) AS TOTAL_PAR_ANOMALIE
    FROM    (   SELECT  [Ano Gênante 1]   AS ERREUR
                    ,   count(*)        AS somme
                FROM    [SUPERVISION PERMANENTE]
                WHERE  [Ano Gênante 1] IS NOT NULL AND [Collaborateur]=[Entrer le collaborateur] AND [Date] BETWEEN [Début] AND [Fin] 
                GROUP BY [Ano Gênante 1] 
            UNION ALL
                SELECT  [Ano Gênante 2]   AS ERREUR
                    ,   count(*)        AS somme
                FROM    [SUPERVISION PERMANENTE]
                 WHERE  [Ano Gênante 2] IS NOT NULL AND [Collaborateur]=[Entrer le collaborateur] AND [Date] BETWEEN [Début] AND [Fin] 
                GROUP BY [Ano Gênante 2]
            )   AS Erreurs
    GROUP BY Erreur;
     
    UNION ALL
     
    SELECT [Date],  [Entrer le collaborateur] AS Collaborateur, erreur AS TYPE_ANOMALIE 
        ,   SUM(somme) AS TOTAL_PAR_ANOMALIE
    FROM    (   SELECT  [Ano Mineure 1]   AS ERREUR
                    ,   count(*)        AS somme
                FROM    [SUPERVISION PERMANENTE]
                WHERE  [Ano Mineure 1] IS NOT NULL AND [Collaborateur]=[Entrer le collaborateur] AND  [Date] BETWEEN [Début] AND [Fin] 
                GROUP BY [Ano Mineure 1] 
            UNION ALL
                SELECT  [Ano Mineure 2]   AS ERREUR
                    ,   count(*)        AS somme
                FROM    [SUPERVISION PERMANENTE]
                 WHERE  [Ano Mineure 2] IS NOT NULL AND [Collaborateur]=[Entrer le collaborateur] AND [Date] BETWEEN [Début] AND [Fin] 
                GROUP BY [Ano Mineure 2]
            )   AS Erreurs
    GROUP BY Erreur;

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Merci de faire un effort dans la présentation de votre problème.

    - Structure des tables
    - Présentation d'un jeu d'essai minimaliste
    - Résultat attendu
    - Requête testée entre balises CODE
    - Résultat retourné par la requête testée

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 102
    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 102
    Points : 28 387
    Points
    28 387
    Par défaut
    1. Le nombre de colonnes retournées par SELECT ne correspond pas aux colonnes attendues par INSERT
    2. Une requête SQL se termine par ;
      Ce qui suit le ; est donc une nouvelle requête et UNION ne peut pas être le premier mot d'une requête

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 55
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    1. Le nombre de colonnes retournées par SELECT ne correspond pas aux colonnes attendues par INSERT
    2. Une requête SQL se termine par ;
      Ce qui suit le ; est donc une nouvelle requête et UNION ne peut pas être le premier mot d'une requête
    Je suis désolée de te déranger de nouveau mais je ne comprends pas. J'ai trois colonnes au niveau de insert et j'en ai mis trois au niveau de SELECT.

    Merci encore pour tous tes conseils

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     INSERT INTO  COINCOUIN ( Date, Collaborateur,Erreur) 
     
    SELECT  BETWEEN [Début] AND [Fin] AS Date, [Entrer le collaborateur] AS Collaborateur, erreur AS TYPE_ANOMALIE
    pour le permier point j'ai simplement supprimer le point virgule.

  5. #5
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    Citation Envoyé par lea022 Voir le message
    Je suis désolée de te déranger de nouveau mais je ne comprends pas. J'ai trois colonnes au niveau de insert et j'en ai mis trois au niveau de SELECT.

    INSERT INTO COINCOUIN ( Date, Collaborateur,Erreur)

    SELECT BETWEEN [Début] AND [Fin] AS Date, [Entrer le collaborateur] AS Collaborateur, erreur AS TYPE_ANOMALIE
    avec le sum(somme), cela fait 4 non?

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 102
    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 102
    Points : 28 387
    Points
    28 387
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT [Date]
      , [Entrer le collaborateur] AS Collaborateur
      , erreur AS TYPE_ANOMALIE 
      ,   SUM(somme) AS TOTAL_PAR_ANOMALIE
    Je compte quatre colonnes ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO  COINCOUIN ( [Date], Collaborateur,Erreur)
    Je n'en compte que trois ...

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 55
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT [Date]
      , [Entrer le collaborateur] AS Collaborateur
      , erreur AS TYPE_ANOMALIE 
      ,   SUM(somme) AS TOTAL_PAR_ANOMALIE
    Je compte quatre colonnes ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO  COINCOUIN ( [Date], Collaborateur,Erreur)
    Je n'en compte que trois ...
    Merci pour ton aide finalement je laisse tomber c'est bien trop compliquer pour moi je modifie une zone ensuite c'est une autre qui déconne.... Bon enfin bref on ne fais pas du SQL en improvisant

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

Discussions similaires

  1. requête ne fonctionne pas
    Par beet2che dans le forum VB.NET
    Réponses: 6
    Dernier message: 27/08/2008, 10h39
  2. continuer une boucle même si une requête ne fonctionne pas
    Par chamoxx dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/08/2008, 16h55
  3. [MySQL] Ma requête SQL fonctionne pas bouuh
    Par CAMB3L dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/04/2007, 19h06
  4. [SQL] La requête ne fonctionne pas
    Par Neuromancien2 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 18/04/2007, 10h52
  5. Réponses: 4
    Dernier message: 26/05/2006, 08h59

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