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

SQL Firebird Discussion :

Erreur dans une requete


Sujet :

SQL Firebird

  1. #1
    S.H
    S.H est déconnecté
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 122
    Points : 31
    Points
    31
    Par défaut Erreur dans une requete
    Salut
    quel est le probleme avec ma requete

    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
     
    CREATE OR ALTER  procedure test( a integer)
    as
     
    begin
    select
        floor(a.RANKNO / :a) as GROUPNO,
        (a.RANKNO / :a) as TEST123,
        a.RANKNO,
        a.id,
        a.nom,
        a.note
    from
        (
    SELECT
                row_number() over(order by note DESC)-1 as RANKNO,
                id,
                nom,
                note
            FROM
                student) a
    end

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    1 - le fait que a soit à la fois un paramètre et un alias de table est dérangeant
    2 - étrange aussi que la procédure ne renvoie aucun résultat

    plus généralement il manque un SUSPEND;

    et enfin, c'est tout personnel, mais je n'aime pas les FROM (SELECT ...) j'y préfère largement l'utilisation de CTE

    sans trop chercher à comprendre, en imaginant quel pourrait être la taille de certaines colonnes de sorties voici comment j'écrirais cette procédure
    (écriture à la volée non testée par manque de structure de table et jeu d'essai)

    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
    CREATE OR ALTER  procedure test( a integer)
    RETURNING (  GROUPNO Integer,
                       TEST123 NUMERIC(5,2),
                       RANKNO INTEGER,
                       ID INTEGER,
                       NOM VARCHAR(30),
                       NOTE INTEGER) 
    AS
    BEGIN
    FOR 
    WITH S1 AS (SELECT
                row_number() over(order by note DESC)-1 as RANKNO,
                id,
                nom,
                note
            FROM
                student)
     
    SELECT  floor(RANKNO / :a) ,
        (RANKNO / :a) ,
        RANKNO,
        id,
        nom,
        note
    from S1 INTO :GROUPNO,:TEST123,:RANKNO,:ID,:NOM,:NOTE 
    DO SUSPEND;
    END^
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    S.H
    S.H est déconnecté
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 122
    Points : 31
    Points
    31
    Par défaut
    merci beaucoup pour votre aide

Discussions similaires

  1. [MySQL] Erreur dans une requête avec jointures
    Par bobic dans le forum Langage SQL
    Réponses: 17
    Dernier message: 03/08/2006, 13h04
  2. erreur dans une requete sql
    Par Skizo dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 31/05/2006, 15h57
  3. [SQL] Erreur dans une requete
    Par einsteineuzzz dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 30/05/2006, 15h25
  4. erreur dans une requete de suppression
    Par el_quincho dans le forum Access
    Réponses: 1
    Dernier message: 28/04/2006, 12h09
  5. [VB.NET]Erreure dans une requete
    Par damaskinos dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/03/2006, 19h30

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