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

Développement SQL Server Discussion :

Décodage de requête - Infos sur mots-clé inconnus


Sujet :

Développement SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 76
    Points : 37
    Points
    37
    Par défaut Décodage de requête - Infos sur mots-clé inconnus
    Bonjour,
    je débute en SQL Server et je dois analyser des requêtes provenant d'une application de gestion de feuilles de temps développée par un éditeur tiers.
    Je connais assez bien le SQL mais certains mots-clés et pratiques me posent problèmes.

    Voici un exemple de requête :

    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
     
    SELECT 
    R8.LASTNAME,
    R8.FIRSTNAME,
    (
    SELECT TOP 1 DPT.DEPARTMENT 
    FROM 
    (HRJOB FUNC RIGHT JOIN HREMPLOYEE EMP ON (EMP.IQID=FUNC.EMPLOYEE) AND ??FILTER(FUNC)?? ) 
        LEFT JOIN 
        ADMDEPARTMENT DPT ON (DPT.IQID=FUNC.NEWDEPARTMENT) 
        WHERE 
        ??FILTER?? AND (EMP.IQID=R8.IQID) AND (FUNC.ACTIONDATE<=A.ENTRYDATE) 
        ORDER BY 
        FUNC.ACTIONDATE DESC
    )
    FROM 
    HREMPLOYEE R8
    Les points qui me posent problèmes sont en gras, quelqu'un pourrait-il me renseigner? Sont-ils propres à SQL SERVER?

    Merci,

    Nicolep

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    TOP sert à limiter le nombre de ligne retournées, ici donc 1.
    On le retrouve dans Access.
    D'autres SGBD utilisent ROW ou LIMIT.
    TOP ne fait pas partie de la Norme SQL.

    FILTER fait parti de la norme SQL 2003 et donc 2008. Je ne l'ai jamais utilisé donc plutôt que de dire des bêtises...

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    A ma connaissance FILTER n'existe pas en SQL.

    Ou avez vous pêché ces requêtes ? Dans le code Source du programme ? Par ce que ce sont peut être des tags destinées à être remplacés par un expression SQL.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 76
    Points : 37
    Points
    37
    Par défaut
    Merci pour ces infos.
    Oui j'ai pris ces requêtes directement dans l'appli. Un bouton permet de générer la requête.
    Ce mot-clé FILTER est peut être effectivement propre à l'appli. Cependant, d'après Chtulus ce serait du SQL server 2003?? Je cherche sur le net mais ne trouve rien, ça m'étonne.. Surtout écrit de cette façon "??FILTER??" (les caractères ?? sont dans la requêtes)..

  5. #5
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Salut SQLPro

    Tu as bien écrit quelque chose sur FILTER... Enfin... il est dans le tableau !

    http://sqlpro.developpez.com/cours/motsreserves/

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Cela ne veut pas dire que c'est utilisé (en fait c'est dans les fonctions d'agrégation OLAP, - Feature T612), et dans le contexte syntaxique de la requête indiquée certainement pas.

    Syntaxe SQL :

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    <aggregate function> ::=
       COUNT <left paren> <asterisk> <right paren> [ <filter clause> ]
       | <general set function> [ <filter clause> ]
       | <binary set function> [ <filter clause> ]
       | <ordered set function> [ <filter clause> ]
    
    <general set function> ::=
       <set function type> <left paren> [ <set quantifier> ]
       <value expression> <right paren>
    
    <set function type> ::= <computational operation>
    
    <computational operation> ::=
       AVG
       | MAX
       | MIN
       | SUM
       | EVERY
       | ANY
       | SOME
       | COUNT
       | STDDEV_POP
       | STDDEV_SAMP
       | VAR_SAMP
       | VAR_POP
       | COLLECT
       | FUSION
       | INTERSECTION
    
    <set quantifier> ::=
       DISTINCT
       | ALL
    
    <filter clause> ::=
       FILTER <left paren> WHERE <search condition> <right paren>
    
    <binary set function> ::=
       <binary set function type> <left paren> <dependent variable expression> <comma> <independent variable expression> <right paren>
    
    <binary set function type> ::=
       COVAR_POP
       | COVAR_SAMP
       | CORR
       | REGR_SLOPE
       | REGR_INTERCEPT
       | REGR_COUNT
       | REGR_R2
       | REGR_AVGX
       | REGR_AVGY
       | REGR_SXX
       | REGR_SYY
       | REGR_SXY
    
     <dependent variable expression> ::= <numeric value expression>
    
     <independent variable expression> ::= <numeric value expression>
    
     <ordered set function> ::=
       <hypothetical set function>
       | <inverse distribution function>
    
    <hypothetical set function> ::=
       <rank function type> <left paren>
       <hypothetical set function value expression list> <right paren>
       <within group specification>
    
    <within group specification> ::=
       WITHIN GROUP <left paren> ORDER BY <sort specification list> <right paren>
    
    <hypothetical set function value expression list> ::=
       <value expression> [ { <comma> <value expression> }... ]
    
    <inverse distribution function> ::=
       <inverse distribution function type> <left paren>
       <inverse distribution function argument> <right paren>
       <within group specification>
    
    <inverse distribution function argument> ::= <numeric value expression>
    
    <inverse distribution function type> ::=
       PERCENTILE_CONT
       | PERCENTILE_DISC
    Mais je ne connais pas de SGBDR implémentant cette particularité !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [EG] Récupérer des infos sur les requêtes SAS EG
    Par m.brahim dans le forum Outils BI
    Réponses: 2
    Dernier message: 13/10/2011, 19h25
  2. requête like sur 2 mots clef
    Par gotcha5832 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/04/2010, 14h01
  3. Réponses: 3
    Dernier message: 22/04/2009, 15h33
  4. Requête basée sur divers mots d'un champ
    Par nicolas2603 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/11/2008, 16h29
  5. Info sur le mot Resceller
    Par isis1be dans le forum Windows XP
    Réponses: 4
    Dernier message: 02/06/2006, 09h46

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