Numéroter enregistrements d'une requête SQL

Cigg -  
 Cigg -
Bonjour,

Je bloque sur un problème de numérotation d'enregistrements retournés par une requête SQL directe (tables AS/400) sous Access

Ma table contient 4 champs principaux, utilisés dans ma requête :
- Type_Ope
- Code_Client
- Ref_Ope
- Montant_saisie

Pour un même type d'opération, un même client, une référence d'opération, il est possible d'avoir 2 montants saisis strictement identique et donc de constituer des doublons dans le résultat de la requête.

La requête actuel affiche donc bien les deux enregistrements, mais rien ne permet de les différencier.

Je souhaiterais pour contourner ce problème ajouter un champs pour affecter un nombre unique à mes enregistrements, mais pas un simple compteur. Je souhaite recommencer la numérotation à chaque groupe Type_Ope, Code_Client, Ref_Ope, Montant_Saisie...et c'est là que je bloque !)

Actuellement, la requête (SELECT Type_Ope, Code_Client, Ref_Ope, Montant_Saisie FROM MaTable) affiche :
Type1 ; Client1 ; Ref1 ; 100
Type1 ; Client1 ; Ref1 ; 50
Type1 ; Client1 ; Ref1 ; 100
Type1 ; Client2 ; Ref1 ; 40
Type1 ; Client2 ; Ref2 ; 60
Type1 ; Client2 ; Ref3 ; 20
Type1 ; Client2 ; Ref3 ; 20

Je souhaiterais obtenir :
Type1 ; Client1 ; Ref1 ; 100 ; 1
Type1 ; Client1 ; Ref1 ; 50 ; 1
Type1 ; Client1 ; Ref1 ; 100 ; 2
Type1 ; Client2 ; Ref1 ; 40 ; 1
Type1 ; Client2 ; Ref2 ; 60 ; 1
Type1 ; Client2 ; Ref3 ; 20 ; 1
Type1 ; Client2 ; Ref3 ; 20 ; 2

Pourriez-vous me venir en aide ?

D'avance merci aux âmes charitables :)

1 réponse

  1. loupius Messages postés 789 Statut Membre 148
     
    Je vois une solution triviale.
    Il te faut évidemment ajouter un champ de type 'INT' à ta base.
    Avant d'ajouter un nouvel enregistrement avec de nouvelles valeurs, il te suffit de faire un:
    SELECT COUNT(*)
       FROM taTable
       WHERE Type_Ope=valType
         AND Code_Client=valClient
         AND Ref_Ope=valRef
         AND Montant_Saisie=valMontant;
    Le nouveau champ sera égal à ce résultat +1.
    Bonne continuation.
    0
    1. Cigg
       
      Bonjour Loupius et merci de ta proposition.

      Je n'ai cependant pas l'accès en écriture sur cette table, et sa structure déjà complexe ne peut être modifiée.

      Je dois donc "agir" et obtenir le résultat dans la requête elle-même.

      Encore merci !
      0