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

MS SQL Server Discussion :

ms server 2005 EXPRESS : requete sql


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Points : 17
    Points
    17
    Par défaut ms server 2005 EXPRESS : requete sql
    voici ma table sous ms server 2005 express :

    Device Model, System Location,Nom partage,Total Page Count,Last Communication,Site

    j'importe des données tous les mois dans cette table le champ last communication permet de voir la date d'import.
    Ce que je voudrai par dessus tout c'est réaliser un delta du champ total page count entre deux import ex :
    en avril g 2346pages en mai j'ai 3394 pages combien l'imprimante(Device model) a imprimer entre avril et mai !
    je bloque vraimetn sur cette requete merci de m'aider
    cordialement

  2. #2
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Points : 93
    Points
    93
    Par défaut
    salut !

    tu peux toujours faire un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select Total Page Count - (select Total Page Count from laTable where Last Communication='avril') 
    from laTable where Last Communication='mai'
    après je ne connais pas le type de Last Communication


    c'est peut-être une piste...

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    tout d'abord merci de ta reponse ,

    le type de totalpagecount est "int" le probleme etant que le champ lastcommunication est de la forme "mercredi 14mai 2008" je ne peux y toucher cependant il doit etre possible de selectionner le debut : "mercredi14mai et jeudi 10avril par ex
    je vais chercher tout sa merci
    si il y a d'autre idées je suis bien entendu preneur!
    merci

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    LASTE COMMUNICATION = text pas de probleme

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    cela marche!! peut tu m'expliquer comment fonctionne ta requete je ne la comprend pas très bien voici comment j'ai adapté ce que tu ma dit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT     [Total Page Count] -
                              (SELECT     [Total Page Count]
                                FROM          TABLE1
                                WHERE      ([Last Communication] LIKE '%AVRIL%')) FROM         TABLE1 
    WHERE     ([Last Communication] LIKE '%mai%')
    cela fonctionne mais j'aimerai comprendre
    merci beaucoup!!!!!!!

  6. #6
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Points : 93
    Points
    93
    Par défaut
    ben c'est tout simplement une soustraction entre deux résultats d'un select

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    'On récupère la valeur de MAI'
    SELECT [Total Page Count] -
     
    'On récupère la valeur dAVRIL via un sous-Select'
    (SELECT [Total Page Count]
    FROM TABLE1
    WHERE ([Last Communication] LIKE '%AVRIL%')) 
     
    FROM TABLE1
    WHERE ([Last Communication] LIKE '%mai%')
    par contre si je peux me permettre ton select est un peu simple. Ne faudrait-il pas prendre en compte l'année également ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    AllyKo et marchoun, pensez à utiliser la balise CODE !!!

    Merci pour eux !

  8. #8
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Points : 93
    Points
    93
    Par défaut
    Salut,

    je viens de modifier mon seul message qui n'avait pas de balise CODE

    oublie de ma part

  9. #9
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    excuser moi pour la balise !! j'ai donc maintenant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT     [Total Page Count] -
                              (SELECT     [Total Page Count]
                                FROM          TABLE1
                                WHERE      ([Last Communication] LIKE '%avri%') AND ([Nom imprimante] LIKE '%imprimante1%')) AS Expr1
    FROM         TABLE1 AS TABLE1_1
    WHERE     ([Last Communication] LIKE '%mai%') AND ([Nom imprimante] LIKE '%imprimante1%')
    le probleme etant que je souhaite maintenant non plus avoir la difference entre 1 imprimante a des dates differentes mais entre un groupe d'imprimante a des dates differentes situé par exemple dans le secteur comptabilité !
    ---> combien de pages la compta a imprimé dans le moi

    j'ai donc essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT     [Total Page Count] -
                              (SELECT     [Total Page Count]
                                FROM          TABLE1
                                WHERE      ([Last Communication] LIKE '%avri%') AND ([lieu] LIKE '%compta%')) AS Expr1
    FROM         TABLE1 AS TABLE1_1
    WHERE     ([Last Communication] LIKE '%mai%') AND ([lieu] LIKE '%compta%')
    sachant qu'il y a plusieurs entrées correspondantes a comptabilité la requete n'est pas valide comment faire svp ?
    cela se complique vraiment pour moi!! merci je compte sur vous

  10. #10
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Points : 93
    Points
    93
    Par défaut
    Je verrais un petit group by dans tes deux requêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT     [Total Page Count] -
              (SELECT     [Total Page Count]
              FROM          TABLE1
              WHERE      ([Last Communication] LIKE '%avril%') AND ([lieu] LIKE '%compta%') group by lieu) AS Expr1
    FROM         TABLE1 AS TABLE1_1
    WHERE     ([Last Communication] LIKE '%mai%') AND ([lieu] LIKE '%compta%' group by lieu)

  11. #11
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    merci de ta reponse rapide!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT     [Total Page Count] -
                              (SELECT     [Total Page Count]
                                FROM          TABLE1
                                WHERE      ([Last Communication] LIKE '%avri%') AND ([system location] LIKE '%transport%')
                                GROUP BY [system location]) AS Expr1
    FROM         TABLE1 AS TABLE1_1
    WHERE     ([Last Communication] LIKE '%mai%') AND ([system location] LIKE '%transport%'
    GROUP BY [system location])
    message d'erreur : syntaxe incorect vers le mot clé "group"

    que faire?
    merci

  12. #12
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Points : 93
    Points
    93
    Par défaut
    hum bizarre...

    tu es sur de l'écriture de la requête ? (espace ou autre)

    parce que apparemment il ne va même pas lire le BY de group by

    assez gênant.


    j'écrirais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT     [Total Page Count] - 
     
        (SELECT     [Total Page Count] 
        FROM          TABLE1 
        WHERE      [Last Communication]='avril' AND [system location]='transport' 
        GROUP BY [system location]) AS Expr1
    FROM         TABLE1 AS TABLE1_1 
    WHERE     [Last Communication]='mai' AND [system location]='transport' 
    GROUP BY [system location]

  13. #13
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    syntaxe impossible car se sont des données text
    je vais continuer a cherccher voir refaire ma table
    merci

    (si ta une idée elle sera la bienvenue)

  14. #14
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Points : 93
    Points
    93
    Par défaut
    a oui, c'est vrai qu'on ne peut pas grouper des variables text.

    il me semble que tu peux CASTER (changer le type temporairement pendant une requête)

    ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select CAST([system location] as varchar) from ...
    remplace ca dans tes group by
    ça devrait passer

  15. #15
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    nouvelle erreur après avoir refais ma table en varchar(50)

    ----> total page count non valide car il n'est pas contenu dans une fonction d'agregation ou dans la clause GROUP BY.

    vraiment compliquer les requetes parfois....

    une idée?
    merci

  16. #16
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Points : 93
    Points
    93
    Par défaut
    Salut,

    c'est fou ce qu'on peut oublier en vous répondre vite...

    Tout ce qui est dans un select, doit être dans un group by

    par conséquent tu dois rajouter group by Total Page Count

    mais plus j'y pense et plus je me dis que ce n'est pas la bonne solution

    En effet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT     [Total Page Count] 
        FROM          TABLE1 
        WHERE      [Last Communication]='avril' AND [system location]='transport']
    GROUP BY [system location]
    devrait te renvoyer une seule ligne pour que ça fonctionne, de même pour l'autre requête.


    je voudrais savoir si c'est vraiment le cas ou pas.

  17. #17
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    j'ai exactement la meme erreur

    je crois qu'il faut revoir la syntaxe de la requete non?
    merci encore

  18. #18
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Points : 93
    Points
    93
    Par défaut
    ouvre une autre discussion, en précisant bien la structure de ta table, clé primaire, étrangère etc..

    si possible avec un petit jeux d'essai.

    La discussion sera ainsi plus claire
    Merci

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/11/2009, 11h51
  2. SQL Server 2005 Express CTP June
    Par bubi dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/10/2005, 11h23
  3. [SQL Server 2005 Express] Problème d'installation.
    Par Nadd dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 17/09/2005, 17h47
  4. [Installation]SQL Server 2005 Express Edition sur XP home
    Par Médiat dans le forum MS SQL Server
    Réponses: 15
    Dernier message: 06/08/2005, 18h22

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