je les tableaux ci-dessousPostgreSQL, les valeurs de changement après une limite est atteinte
ordres Réductions
id | employee |
---|----------|
1 |1 |
2 |2 |
3 |1 |
4 |3 |
5 |3 |
6 |1 |
7 |1 |
8 |1 |
9 |1 |
Ailleurs j'ai le salaire des employés.
Ce que je veux faire est le suivant.
Si l'employé existe sur la table des commandes remises procédez comme suit:
-> 1 rang sur la Remise « Table des commandes de rabais » 30% de la valeur salariale et insérer 1 rang sur « tableau X » avec le montant de l'employee_id et la valeur de réduction.
-> 2 lignes dans le "tableau des remises" Rabais de 30% sur la valeur salariale et insère 2 lignes sur la "table X" avec le montant de l'employee_id et la valeur de remise.
-> 3 lignes sur le "tableau des remises" Rabais de 30% sur la valeur salariale et insère 3 lignes sur la "table X" avec le montant de l'employee_id et la valeur de remise.
-> 4 lignes sur le "tableau des escomptes" Rabais de 30% sur la valeur salariale et insère 3 lignes sur la "table X" avec le montant de la valeur employee_id et de la réduction (3 fois 30% salaire) La 4ème ligne insérée devrait être ony pour 10% (pour atteindre 100% du salaire)
->> 4 lignes sur la "table des ordres de remises" font le processus pour le cas ci-dessus et ignorer le reste. (Parce que vous ne pouvez pas escompter plus de 100% du salaire)
Si l'employé # 1 gagner 1000 $ et ont 10 lignes sur la « table des commandes de remises » la table X devrait ressembler à ceci
id | employee | discount_value | discounts_orders_id
---|----------|----------------|--------------------
1 | 1 | 300 | 1
2 | 1 | 300 | 3
3 | 1 | 300 | 6
4 | 1 | 100 | 7
EDITED:
J'ai trouvé une solution temporelle.
insert into "table x" ....
select (employee_salary * 0.30) from employee
inner join discounts_orders ....
limit 4
I insert 4 lignes avec (salaire * 0,30) puis mettre à jour une rangée avec (salaire * 0,10)
S'il vous plaît nous montrer quel code vous avez essayé jusqu'à présent! – AlexKoren
Salut Alex, j'ai mis à jour le post, vous pouvez voir une solution temporelle, je parie qu'il y a une meilleure option. –