Bagaimana untuk menggabungkan 3 jadual berbeza ke dalam satu jadual untuk mencipta data agregat?
P粉891237912
P粉891237912 2024-03-31 12:45:39
0
1
369

Semoga anda semua sihat! :D

Saya memerlukan bantuan anda untuk menyelesaikan tugasan berikut:

Saya perlu mencipta jadual berikut:

Tarikh Pendapatan daripada transaksi baharu Pendapatan hilang kerana bergolak Pendapatan daripada upsells
1 Januari 2022 $1000 -$500 $1000
2 Januari 2022 $2000 -$200 $2000

Apa yang berlaku di sini ialah untuk mengumpul dan mengagregat data ini, saya perlu mendapatkan 3 jadual berbeza:

Urus niaga, Churn dan Upsells

PerdaganganJadual:

Berdagang Tarikh akhir pendapatan
Tawaran #1 1 Januari 2022 $500
Tawaran #2 1 Januari 2022 $500
Tawaran #3 2 Januari 2022 $1500
Tawaran #4 2 Januari 2022 $500

KerugianJadual:

Rugi Tarikh akhir Kehilangan pendapatan
churn #1 1 Januari 2022 -$500
churn #2 2 Januari 2022 -$100
churn #3 2 Januari 2022 -$100

Senarai Upsell:

Upsell Tarikh akhir pendapatan
Upsell #1 1 Januari 2022 $2000
Upsell #2 1 Januari 2022 -$1000
Upsell #3 2 Januari 2022 $2000

Soalan pertama ialah: Bagaimanakah saya boleh membuat arahan SQL untuk mencapai ini?

Terima kasih terlebih dahulu.

P粉891237912
P粉891237912

membalas semua(1)
P粉674999420

Anda boleh menggunakan subkueri untuk mengagregat jadual churn dan upsell.

Seperti yang ditunjukkan di bawah:

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 一个>

Tolong jangan simpan tarikh sebagai teks, anda akan menghadapi banyak kesukaran. Kalau nak format tarikh boleh guna DATE_FORMAT

Perhatian. Jika tarikh lain wujud dalam jadual transaksi tetapi tidak dalam dua jadual lain, tarikh itu akan ditapis keluar daripada keputusan. Jika anda mahu, gunakan LEFT JOIN而不是INNER JOIN.

**Edit

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan