[SQL] Problème de consolidation - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [SQL] Problème de consolidation (/showthread.php?tid=7005) |
[SQL] Problème de consolidation - Myrina - 28-06-2013 J'ai une table X(jour,valeur) où j'ai pour chaque jour une valeur. Je peut monétiser cette valeur (montant=PU*valeur). Le prix unitaire (PU) est fixé par intervalle de dates; Entre date1 et date2, il vaut par exemple 5 et entre date2 et (date non encore connue), il vaut 3,5. Je n'ai pas encore structuré la table contenant les PU car j'aimerai pouvoir calculer en SQL la valeur monétisée totale en tenant compte de la variabilité du PU par période (SELECT SUM(valeur*PU)...) J'ai bien quelques pistes mais rien en pur SQL, donc je recherche d'autres idées. RE: [SQL] Problème de consolidation - Roworll - 01-07-2013 Tu peux donner un ou deux exemples concrets ? Là, j'avoue n'avoir qu'une très vague idée du problème. J'ai du mal à voir ta structure actuelle, ce que tu souhaites exactement faire et surtout, à quoi cela va te servir. RE: [SQL] Problème de consolidation - Myrina - 01-07-2013 Donc chaque jour, j'ai une valeur: Code : 01/06/13 100 Le 15/06/13, le PU change à 3,5. Le 26/06/13, le PU change à 10. Ce qui donne alors: Code : 01/06/13 100 500,00 € Et l'utilité finale, c'est de connaitre le total (16 850,00 € dans l'exemple) RE: [SQL] Problème de consolidation - Roworll - 01-07-2013 J'ai peut être pas tout compris mais ça ne me semble pas si compliqué. Donc tu as une première table disons Historique_Valeur avec deux colonnes - Date_Valeur - Montant_Valeur Ensuite, tu as une 2e table historique_PU avec 3 colonnes - Date_Debut - Date_Fin - Montant_PU Sauf erreur, il suffit simplement de joindre les deux tables
Ne sachant pas comment sont organisées tes tables, j'ai supposé que dans la table Historique_PU, si la date de fin n'est pas encore connue, elle est mise à NULL, d'où l'utilisation de IFNULL(). RE: [SQL] Problème de consolidation - Myrina - 01-07-2013 Faut vraiment que j'arrête de vouloir me faire des noeuds au cerveau, car quand je vois ton code SQL, j'ai presque honte de sa simplicité... Quoique je ne pensais pas du tout à la fonction IFNULL(). Me reste juste à voir si je peux faire un trigger pour fixer Date_Fin à Date_Debut-1 de la nouvelle occurrence dans Historique_PU pour l'occurrence ou Date_Fin est à NULL. |