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 :

problemes avec procedures stockée


Sujet :

SQL Firebird

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    345
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 345
    Points : 90
    Points
    90
    Par défaut problemes avec procedures stockée
    salut tout le monde ,pouvez vous m'aider cette procedure me donne des soucis :Multiple rows in singleton select
    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
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
     
    CREATE PROCEDURE BALCN (
        DEBUT DATE,
        FIN DATE)
    RETURNS (
        COMPTE VARCHAR (10),
        INTT VARCHAR (80),
        ANVD NUMERIC (15, 2),
        ANVC NUMERIC (15, 2),
        ANV NUMERIC (15, 2),
        DEBIT NUMERIC (15, 2),
        CREDIT NUMERIC (15, 2),
        SOLDE NUMERIC (15, 2),
        SDEBIT NUMERIC (15, 2),
        SCREDIT NUMERIC (15, 2),
        SSOLDE NUMERIC (15, 2),
        FCLE INTEGER,
        CPT3 VARCHAR (3),
        CPT4 VARCHAR (4),
        CPT5 VARCHAR (5),
        CPT6 VARCHAR (6),
        CPT7 VARCHAR (7))
    AS
    Begin
    FOR
    select 
      m.collectif,
      r.intitule,
      sum(m.debit) DEBIT_N,
      sum(m.credit) CREDIT_N,
      sum(m.debit)-sum(m.credit) TOTALN
    from mouv  M
    INNER JOIN compte r ON ( M.collectif=R.compte)
    where journal<>'ANV' AND JOURNAL<>'ANF' AND JOURNAL<>'ANC' AND M.datemvt BETWEEN :debut AND :fin
     
    group by m.collectif,R.intitule,r.debit_n_1,R.credit_n_1
    into :COMPTE, :INTT,:DEBIT , :CREDIT, :SOLDE
    DO
    Begin
    ANVD=NULL;
    ANVC=NULL;
    if ((substr(:compte,1,1)='6') or (substr(:compte,1,1)='7')) then
    begin
    Select Debit, Credit from BALA WHERE compte=:Compte
    into :ANVD,:ANVC;
    end
    else
    begin
    Select Debit, Credit from MOUV WHERE collectif=:Compte
    AND JOURNAL='ANV'
     
    into :ANVD,:ANVC;
    end
     
    if (ANVD IS NULL) then ANVD=0;
    if (ANVC IS NULL) then ANVC=0;
    ANV=:ANVD-:ANVC;
    if ((substr(:compte,1,1)=6) or (substr(:compte,1,1)=7)) then
    Begin
    SDEBIT=:DEBIT;
    SCREDIT=:CREDIT;
    SSOLDE=:SOLDE;
    end
    else
    begin
    SDEBIT=:ANVD+:DEBIT;
    SCREDIT=:ANVC+:CREDIT;
    SSOLDE=:ANV+:SOLDE;
    end
    FCLE=1;
    CPT3=SUBSTR(:COMPTE,1,3);
    CPT4=SUBSTR(:COMPTE,1,4);
    CPT5=SUBSTR(:COMPTE,1,5);
    CPT6=SUBSTR(:COMPTE,1,6);
    CPT7=SUBSTR(:COMPTE,1,7);
    SUSPEND;
    end
     
    FOR
    select
      m.compte,
      r.intitule,
      m.debit,
      m.credit,
      m.debit-m.credit
    from BALA  M
    INNER JOIN compte r ON ( M.coMPTE=R.compte)
    where COMPTE NOT IN (SELECT DISTINCT COLLECTIF FROM MOUV WHERE JOURNAL<>'ANV' AND JOURNAL<>'ANF' AND JOURNAL<>'ANC' )
     
    into :COMPTE, :INTT, :ANVD , :ANVC, :ANV
    DO
    Begin
    DEBIT=0;
    CREDIT=0;
    SOLDE=0;
     
    if (substr(:compte,1,4)='1181') then
    Begin
    select
      m.debit,
      m.credit,
      m.debit-m.credit
    from mouv  M
    INNER JOIN compte r ON ( M.coMPTE=R.compte)
    where JOURNAL='ANV' AND COMPTE=:COMPTE
    into :ANVD , :ANVC, :ANV;
    end
     
     
    SDEBIT=:ANVD+:DEBIT;
    SCREDIT=:ANVC+:CREDIT;
    SSOLDE=:ANV+:SOLDE;
     
    if (substr(:compte,1,4)='1181') then
    Begin
    select
      m.debit,
      m.credit,
      m.debit-m.credit
    from BALA  M
    INNER JOIN compte r ON ( M.coMPTE=R.compte)
    where COMPTE=:COMPTE
    into :ANVD , :ANVC, :ANV;
    end
    FCLE=0;
    CPT3=SUBSTR(:COMPTE,1,3);
    CPT4=SUBSTR(:COMPTE,1,4);
    CPT5=SUBSTR(:COMPTE,1,5);
    CPT6=SUBSTR(:COMPTE,1,6);
    CPT7=SUBSTR(:COMPTE,1,7);
    SUSPEND;
    end
    end
    Merci

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Je n'ai pas examiné ta PS en détail, mais le message d'erreur 'Multiple rows in singleton select' signifie simplement qu'un select renvoie plusieurs enregistrements alors qu'il est sensé n'en recevoir qu'un.

    Si cela peut t'aider à debugger ta PS...

    @+ Claudius

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    345
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 345
    Points : 90
    Points
    90
    Par défaut
    oui effectivement mais je ne sais le quel puisque tout mes autres bases de données marche tres bien pouvez vous l'examiner svp

  4. #4
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 45
    Points : 45
    Points
    45
    Par défaut
    A mon avis c'est celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    select
    m.collectif,
    r.intitule,
    sum(m.debit) DEBIT_N,
    sum(m.credit) CREDIT_N,
    sum(m.debit)-sum(m.credit) TOTALN
    from mouv M
    INNER JOIN compte r ON ( M.collectif=R.compte)
    where journal<>'ANV' AND JOURNAL<>'ANF' AND JOURNAL<>'ANC' AND M.datemvt BETWEEN :debut AND :fin
    Tu as plusieurs "collectif" et "intitule" mais les "SUM" sont uniques

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

Discussions similaires

  1. probleme avec procedure stockée
    Par tilily dans le forum C#
    Réponses: 3
    Dernier message: 16/01/2012, 20h46
  2. Probleme avec Procedure stockée
    Par log528 dans le forum Développement
    Réponses: 1
    Dernier message: 18/05/2008, 16h14
  3. Probleme d'insertion et de tri avec Procedure Stockée
    Par freud dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/04/2007, 15h27
  4. [VB.NET] remplir dataset avec procedure stockée
    Par HULK dans le forum Windows Forms
    Réponses: 7
    Dernier message: 18/07/2006, 12h05
  5. Boucle avec procedure stocké
    Par badrel dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 15/06/2006, 08h42

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