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 Oracle Discussion :

Requête somme prix


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 99
    Par défaut Requête somme prix
    Bonjour,
    J'ai 4 table d'une base de donnée voila quelques colonnes de chaque table:
    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
     
    MFT_AR_DETAILR: Table reservation
    ------------------------------------
    MFT_AR_DETAILR_YRES_ID (l'ID de la réservation)
    MFT_AR_DETAILR_PRIXA    
    MFT_AR_DETAILR_PRIXB
    MFT_AR_DETAILR_PRIXC
    MFT_AR_DETAILR_PRIXT
    MFT_AR_DETAILR_FAC (clé étrangère qui référence a la table facture)
    MFT_AR_DETAILR_CURRENT_DATE (date courante pour chaque jour de la réservation)
    MFT_AR_FACTURE: Table facture
    ---------------------------------------
    FA_ID (l'ID de la facture)
    FA_DB (l'agence)
    FA_TD (taux de change)
    MFT_AR_DETAIL_FACTURE: Détails de la facture
    ----------------------------------------------
    DF_ID (l'ID de détails de la facture)
    DF_FA_ID (clé étrangère qui référence a la table facture)
    DF_YRES_ID (clé étrangère qui référence à la table réservation)
    MFT_AR_PROMO: Table promotion
    MFT_AR_PROMO_YRES_ID(clé étrangère qui référence à la table réservation)
    MFT_AR_PROMO_DATE (date courante de chaque ligne)
    MFT_AR_PROMO_MOUNT(Montant de la promotion)
    Le problème, si l'utilisateur passe en paramètre une date le système doit doit retourner les factures et no pas avec leurs totalités de montant mais il fait la somme des quatres prix de la réservations et la somme des promotions et qui ont des dates inférieur ou égale à la date passée en paramètre et en respectant la jointure entre les réservations et leurs factures et leurs promotions
    Par exemple:
    si dans la table réservations j'ai lés lignes suivantes est qui sont tous liées à la même facture:
    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
     
    ID       PrixA                  PrixB           PrixC     PrixT  ID_Fac        Date
    1         20                     10              10        10        1          1/1/2000
    2         30                     10              10        10        1          2/1/2000
    3         15                     10              10        10        1          3/1/2000
    aussi j'ai les lignes suivantes dans la table promotion
    ID_RES           Date          Mount
    1                  1/1/2000      10
    1                  2/1/2000      15
    1                  3/1/2000      10
    2                  1/1/2000        9
    2                  2/1/2000        9
    2                  3/1/2000        9
    3                  1/1/2000      10
    3                  2/1/2000      10
    3                  3/1/2000      10
    Si l'utilisateur passe en paramètre la date 2/1/2000
    le système doit retourner la somme des 4 prix de la table réservation
    et la somme des promotions et qui ont une date <= à 2/1/2000 ainsi que les info de la factures
    Merci d'avance

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Qu'avez-vous commencé à écrire ?

    Pour la table promotion, il faudra faire un objet de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum(case when date <= :date_utilisateur then mount end)

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 99
    Par défaut requete somme prix
    Je veux une requête SELECT et non pas une procédure stocké et la date utilisateur est au niveau de l'application vb6

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Oui et ?

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 99
    Par défaut requete somme prix
    j'ai essayé avec se code et c'est bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT FA_ID, FA_DB,FA_TD,
           sum(MFT_AR_DETAILR_PRIXA+MFT_AR_DETAILR_PRIXB+MFT_AR_DETAILR_PRIXC+MFT_AR_DETAILR_PRIXT) - sum(MFT_AR_PROMO_MOUNT) AS prix_total
    FROM MFT_AR_FACTURE
    JOIN MFT_AR_DETAILR  ON MFT_AR_DETAILR_FAC = FA_ID
    LEFT JOIN MFT_AR_PROMO ON MFT_AR_PROMO_YRES = MFT_AR_DETAILR_YRES_ID AND MFT_AR_PROMO_DATE <=MFT_AR_DETAILR_CURRENT_DATE
    WHERE MFT_AR_DETAILR_CURRENT_DATE = '28/12/2009' and MFT_AR_DETAILR_YRES_ID=66376
    GROUP BY FA_ID, FA_DB,FA_TD

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Prenez toujours l'habitude de forcer le format sur les dates quand vous utilisez des litéraux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE MFT_AR_DETAILR_CURRENT_DATE = to_date('28/12/2009', 'dd/mm/yyyy')

Discussions similaires

  1. Requête somme critères
    Par dddodo dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 13/12/2006, 22h25
  2. Requête Somme des factures !
    Par nicou50 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 01/09/2006, 03h10
  3. résultat d'une requête Somme dans un formulaire
    Par chrislauxerrois dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 03/08/2006, 15h29
  4. Requête somme et alerte dépassement
    Par Nicola dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 20/06/2006, 00h01
  5. [Oracle] Problème requête somme
    Par baptus dans le forum Langage SQL
    Réponses: 24
    Dernier message: 23/03/2006, 08h33

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