Rumah > pangkalan data > tutorial mysql > Mengapakah pengiraan jumlah SQL saya tidak betul apabila menggabungkan berbilang jadual, dan bagaimanakah saya boleh membetulkannya menggunakan subkueri?

Mengapakah pengiraan jumlah SQL saya tidak betul apabila menggabungkan berbilang jadual, dan bagaimanakah saya boleh membetulkannya menggunakan subkueri?

Patricia Arquette
Lepaskan: 2024-12-28 19:18:11
asal
579 orang telah melayarinya

Why are my SQL sum calculations incorrect when combining multiple tables, and how can I fix them using subqueries?

Menggabungkan Data daripada Berbilang Jadual untuk Penjumlahan: Menangani Keputusan Yang Salah

Dalam pertanyaan SQL anda, anda bertujuan untuk mendapatkan semula jadual yang terdiri daripada tiga lajur : "PROJECT," "SUM_AP," dan "SUM_INV." Walau bagaimanapun, anda telah menemui hasil yang salah disebabkan pengumpulan dalam proses pengagregatan.

Punca Keputusan Yang Salah:

Klausa "KUMPULAN OLEH" dalam pertanyaan anda menggabungkan nilai berdasarkan pada lajur "AP.[PROJECT]". Proses pengagregatan ini pada asasnya merumuskan entri "Nilai" pendua, yang membawa kepada hasil yang melambung.

Penyelesaian: Menggunakan Pertanyaan Sub-Pilih

Untuk menangani isu ini, kami boleh mengubah suai pertanyaan anda menggunakan sub-pilih pertanyaan:

SELECT 
    AP1.[PROJECT],
    (SELECT SUM(AP2.Value) FROM AP AS AP2 WHERE AP2.PROJECT = AP1.PROJECT) AS SUM_AP,
    (SELECT SUM(INV2.Value) FROM INV AS INV2 WHERE INV2.PROJECT = AP1.PROJECT) AS SUM_INV
FROM 
    AP AS AP1 
    INNER JOIN INV AS INV1 
        ON (AP1.[PROJECT] =INV1.[PROJECT])
WHERE 
    AP1.[PROJECT] = 'XXXXX'
GROUP BY 
    AP1.[PROJECT]
Salin selepas log masuk

Penjelasan:

  • Sub-pertanyaan dalam fungsi SUM() mengira jumlah entri "Nilai" daripada "AP Jadual " dan "INV", masing-masing, untuk setiap nilai "PROJEK" yang unik.
  • Pertanyaan utama kemudian menyertai sub-pertanyaan ini, berdasarkan nilai "PROJECT" yang sepadan dan mengagregatkan hasil sekali lagi untuk menghasilkan jadual akhir.

Pertanyaan yang disemak ini memastikan bahawa hanya nilai "PROJECT" yang berbeza dikumpulkan, dan jumlahnya dikira dengan betul, memberikan hasil yang diharapkan.

Atas ialah kandungan terperinci Mengapakah pengiraan jumlah SQL saya tidak betul apabila menggabungkan berbilang jadual, dan bagaimanakah saya boleh membetulkannya menggunakan subkueri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan