Bonjour à tous.
Dans le souci d'optimisation, je demande votre avis si une telle requêtte est faisable.
La base de donnée est sur un serveur Firebird version 1.5.
Alors, j'ai 2 tables
Table CALCULFRAIS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
CREATE TABLE CALCULFRAIS (
    CLF_ID       INTEGER NOT NULL,
    CLF_MNTMINI  NUMERIC(12,2) NOT NULL,
    CLF_MNTMAXI  NUMERIC(12,2) NOT NULL,
    CLF_TAUX     NUMERIC(5,2) NOT NULL,
    CLF_VALEUR   NUMERIC(12,2) NOT NULL
);
Clé primaire (CLF_ID)
Table ACHAT
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
CREATE TABLE ACHAT (
    ACH_ID                 SMALLINT NOT NULL,
    ACH_QTECMD       NUMERIC(12,2) NOT NULL,
    ACH_PUEURO       NUMERIC(18,2) NOT NULL,
    ACH_NUMBC         VARCHAR(20),
    ACH_DATEBC        DATE,
  ....
);
Clé primaire ACH_ID
Voici les descriptif de 2 tables :
CALCULFRAIS : Table qui donne le taux et la valeur de chaque frais en fonction des intervalle de montant des achats (CLF_MNTMINI et CLF_MNTMAXI)
ACHAT : tables des achats.
Ce que je veux en faites c'est d'avoir le montant des Achat groupé par bon de commande, mais aussi le taux et Valeur de chaque frais.
Les 2 tables n'ont pas de relation, seulement, le montant du BC détermine le taux et frais récupéré.

Pour l'instant, je fais 2 requêtes différentes pour chaque ligne, et je cherche à recuperer le tout dans une seule requête genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
SELECT ACH_NUMBC ,(SUM(ACH_QTECMD * ACH_PUEURO)) AS ACH_MONTBC, CLF_TAUX, CLF_VALEUR FROM ACHAT
INNER JOIN CALCULFRAIS ON
    (SUM(ACH_QTECMD * ACH_PUEURO)) BETWEEN CLF_MNTMINI AND CLF_MNTMAXI
GROUP BY ACH_NUMBC
Merci pour votre aide.