J'ai besoin de faire une requête avec le résultat attendu comme ci-dessous. Considérons la prev. L'équilibre est le champ calculé automatiquement. Et je veux peupler avec la requête MySQL en prenant la balance (de la ligne précédente) Voir la photo. Comment interroger en utilisant MySQL? La date peut être n'importe quelle date non séquentielle et ci-dessous est juste une illustration. P>
Notez que le solde précédent n'est qu'une séquence de l'ancienne balance. Signification que le premier solde précédent toujours nul ou zéro et la balance obtiennent son montant du montant supplémentaire. Du premier bilan, le deuxième enregistrement commence à avoir son solde précédent et qu'il continue et sur P>
3 Réponses :
Vous pouvez utiliser rang_number () code> à utiliser pour rejoindre code> Votre Solde précédent code>. select t1.*, t2.PrevBalance from
(select Date, PrevBalance, AddedAmount,
row_number() over (order by Date asc) as rn
from tableA) t1
left join
(select Date, PrevBalance, AddedAmount,
row_number() over (order by Date asc) as rn
from tableA) t2 on t2.rn + 1 = t1.rn
Je pense que vous avez une idée de mauvaise idée ... Je veux équilibrer comme un solde précédent ... ce n'est pas aussi simple que cela
Si vous voulez simplement calculer le solde précédent à partir de la balance actuelle, une sous-section est suffisante: Remarque: vous avez mentionné que Ceci est un peu plus flexible que de stocker des valeurs dans la table elle-même. . p> p> Balance code> est une sorte de colonne calculée. Veuillez noter que si vous exécutez MySL 8.0, vous pouvez calculer la balance et la balance de la balance avec les fonctions de la fenêtre: p>
C'est une très bonne idée ... Wow je n'y ai jamais pensé que lol ... mais le point est que la balance est également calculée automatiquement qui provient du solde précédent.
En fait, l'équilibre précédent et le solde de la valeur calculée ... c'est comme le premier solde deviendrait l'équilibre précédent et ainsi de suite et sur
Je me sens comme si j'y ai pensé trop loin ... Après avoir regardé le dos, la requête est assez simple, c'est que l'idée était difficile à saisir en premier lieu. Cette requête résoudra le problème et calculera le solde et le solde précédent. Il a appelé l'équilibre exécutant / équilibre cumulatif. L'idée est que la requête interne calculera d'abord le solde précédent ... une fois que le solde précédent obtient, utilisez-le pour calculer la balance dans la requête extérieure
SELECT
t2.date,
t2.added_amount,
t2.previous_balance
t2.previous_balance + t2.added_amount AS balance
FROM
(Select
t.date,
t.added_amount,
(SELECT sum(t1.added_amount) FROM table t1
WHERE t1.date < t.date) as previous_balance
FROM table t
ORDER BY t.date) t2
ORDER BY t2.date
Quelle est la version mysql?
C'est mariadb je ne suis pas exactement sûr la version
Très déroutant, veuillez publier la sortie attendue et ce que vous avez essayé jusqu'à présent.
La question est simple, mais la solution est très délicate, je ne pouvais pas vraiment comprendre comment faire cela