Sous-Requete qui affiche au plus un enregistrement

Résolu/Fermé
oholabi1234 -  
Oholabi12345 Messages postés 511 Statut Membre -
Bonjour ; jai une table
TRANSACTION( id_transaction;date_transaction;type_tansaction ; montant_transaction)
qui m'a permis de faire la requête suivante avec le code sql :
SELECT
      ( SELECT TOP 1 Montant_Transaction
         FROM TRANSACTION AS DUP 
         WHERE DUP.IdTransaction <Transaction.IdTransaction 
         ORDER BY Date_Transaction DESC) AS MontantMouvement
      , ( Select TOP 1 Type_Transaction
            FROM TRANSACTION AS DUP 
           WHERE DUP.IdTransaction<Transaction.IdTransaction 
           ORDER BY Date_Transaction DESC ) AS TypeMouvement
     , *
FROM [TRANSACTION];

le problème qui se pose c'est quand je saisie plusieurs enregistrements dans ma table et que je consulte ma requete il m'affiche un message d'erreur
" cette sous requête peut retourner au plus un enregistrement"
comment régler ce problème
merci d'avance

EDIT : Ajout des balises de code.

3 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
     
    Bonjour,

    Pourquoi ne fais tu pas simplement
    SELECT TOP 1 Montant_Transaction AS MontantMouvement
                  ,Type_Transaction  AS TypeMouvement
                 , *
    FROM TRANSACTION AS DUP 
    WHERE DUP.IdTransaction <Transaction.IdTransaction 
    ORDER BY Date_Transaction DESC
    
    

    0
    1. oholabi1234
       
      merci pour votre aide
      mais la requete ne fonctionne pas ; elle me demande de rentrer une valeur de parametre :
      transaction.idtransaction ; au lieu de transaction est ce que ce n'est pas "DUP" ; malgré cela elle n'affiche pas de données dans le résultat de la requete
      que faire alors?
      0
    2. Oholabi1234
       
      Mon problem n'est toujours pas réglé
      0
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Oholabi1234
       
      bonjour,
      examine bien le nom des champs de la table, et vérifie qu'ils sont correctement écrits dans la requête.
      0
    4. Oholabi1234 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Je tiens compte de ma requête ou celle de jordane 45 pour la vérification ?
      0
    5. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Oholabi1234
       
      pourquoi ne pas travailler sur les deux?
      0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    tu avais écrit que la requête demande de rentrer une valeur de parametre :
    transaction.idtransaction
    0
    1. Oholabi1234
       
      Elle marche maintenant parce que j'ai remplacé Transaction.idtransaction par Dup.idtransaction en effet, elle Permet de faire des saisies qui se déversent dans la table Transaction.
      En fait je souhaiterais faire un état qui affiche le solde à l'ouverture de la journée et c'est cette collone qui ne fonctionne pas bien
      0
      1. Oholabi1234 > Oholabi1234
         
        En fait la requête devra être utilisée pour afficher un état avec les colonnes suivantes :
        Idtransaction
        Datetransaction
        Solde ouverture
        Montant transaction
        Type Transaction
        soldecloture
        0
      2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Oholabi1234
         
        pourquoi changes-tu d'identifiant sur le forum?
        si tu as modifié la requête, ne penses-tu pas qu'il serait utile de nous montrer la nouvelle requête?
        0
      3. Oholabi1234 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Concernant mon identifiant c'est une erreur de manipulation
        0
  3. oholabi1234
     
    SELECT TOP 1 DUP.Montant_Transaction AS MontantMouvement, DUP.Type_Transaction AS TypeMouvement, DUP.Date_Transaction, DUP.IdTransaction, *
    FROM [TRANSACTION] AS DUP
    WHERE (((DUP.IdTransaction)<[DUP].[IdTransaction]))
    ORDER BY DUP.Date_Transaction DESC;
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      et cette requête retourne quelque chose? bizarre!
      0
    2. oholabi1234 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      non elle ne retourne rien de bizarre ; elle permet de faire les saisies des differentes transactions et ces saisies se retrouvent dans la table trasactions
      0
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > oholabi1234
       
      cette requête retourne-t-elle quelque chose?
      peux-tu montrer cela?
      0
    4. Oholabi1234 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      En fait quand j'ouvre la requête les champs sont vides
      0
    5. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Oholabi1234
       
      cela me semble normal, vu la requête.
      0