J'espère que vous allez tous bien ! :D
J'ai besoin de votre aide pour réaliser les tâches suivantes :
Je dois créer le tableau suivant :
Date | Revenus des nouvelles transactions | Revenu perdu en raison du désabonnement | Revenus des ventes incitatives |
---|---|---|---|
1er janvier 2022 | 1000$ | -500$ | 1000$ |
2 janvier 2022 | 2000$ | -200$ | 2000$ |
Ce qui se passe ici, c'est que pour collecter et agréger ces données, j'ai besoin d'obtenir 3 tableaux différents :
Transactions, désabonnement et ventes incitatives
CommerceTableau :
Commerce | Date limite | gains |
---|---|---|
Offre #1 | 1er janvier 2022 | 500 $ |
Offre #2 | 1er janvier 2022 | 500 $ |
Offre #3 | 2 janvier 2022 | 1 500 $ |
Offre #4 | 2 janvier 2022 | 500 $ |
PerteTableau :
Perte | Date limite | Perte de revenus |
---|---|---|
churn #1 | 1er janvier 2022 | -500$ |
churn #2 | 2 janvier 2022 | -100$ |
churn #3 | 2 janvier 2022 | -100$ |
Liste de ventes incitatives :
Vente incitative | Date limite | gains |
---|---|---|
Vente incitative #1 | 1er janvier 2022 | 2000$ |
Vente incitative #2 | 1er janvier 2022 | -1000$ |
Vente incitative #3 | 2 janvier 2022 | 2000$ |
La première question est : Comment puis-je créer une commande SQL pour accomplir cela ?
Merci d'avance.
Vous pouvez utiliser des sous-requêtes pour agréger les tableaux de désabonnement et de vente incitative.
Comme indiqué ci-dessous :
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=0875563c9ab7f9385711dde21cd98b47 一个>
Veuillez ne pas stocker les dates sous forme de texte, vous ferez face à beaucoup de difficultés. Si vous souhaitez formater la date, vous pouvez utiliser DATE_FORMAT
Attention. Si une autre date existe dans la table des transactions mais pas dans les deux autres tables, cette date sera filtrée des résultats. Si vous le souhaitez, utilisez
LEFT JOIN
而不是INNER JOIN
.**Modifier
https://dbfiddle.uk/S61QeLBX