Comment combiner 3 tableaux différents en un seul pour créer des données agrégées ?
P粉891237912
P粉891237912 2024-03-31 12:45:39
0
1
406

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.

P粉891237912
P粉891237912

répondre à tous(1)
P粉674999420

Vous pouvez utiliser des sous-requêtes pour agréger les tableaux de désabonnement et de vente incitative.

Comme indiqué ci-dessous :

select d.Closing_date,
       sum(d.Revenue_won) as 'Revenue gained from new deals', 
       c.`Revenue lost from churn`,
       u.`Revenue gained from upsell`
from deals d
inner join ( select Closing_date,
                    sum(Revenue_lost) as 'Revenue lost from churn'
            from churns 
            group by Closing_date 
            ) as c on c.Closing_date=d.Closing_date
inner join ( select Closing_date,
                    sum(Revenue_won) as 'Revenue gained from upsell'
             from upsells u 
             group by Closing_date 
             ) as u on  u.Closing_date=d.Closing_date          
group by d.Closing_date ;

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

select d.Closing_date,
       d.`Revenue gained from new deals`,
       c.`Revenue lost from churn`,
       u.`Revenue gained from upsell`
from  ( select Closing_date,
               sum(Revenue_won) as 'Revenue gained from new deals'
        from deals 
        group by Closing_date ) as d 
inner join ( select Closing_date,
                    sum(Revenue_lost) as 'Revenue lost from churn'
            from churns 
            group by Closing_date 
            ) as c on c.Closing_date=d.Closing_date
inner join ( select Closing_date,
                    sum(Revenue_won) as 'Revenue gained from upsell'
             from upsells u 
             group by Closing_date 
             ) as u on  u.Closing_date=d.Closing_date           ;

https://dbfiddle.uk/S61QeLBX

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal