Rumah > pangkalan data > tutorial mysql > Bagaimana untuk meringkaskan data dengan betul dari beberapa jadual SQL dan mengelakkan keputusan yang salah?

Bagaimana untuk meringkaskan data dengan betul dari beberapa jadual SQL dan mengelakkan keputusan yang salah?

Susan Sarandon
Lepaskan: 2024-12-30 14:50:14
asal
700 orang telah melayarinya

How to Correctly Summarize Data from Multiple SQL Tables and Avoid Incorrect Results?

Meringkaskan Data daripada Pelbagai Jadual dalam SQL: Menangani Keputusan Yang Salah

Dalam bidang analisis data, selalunya perlu untuk menggabungkan maklumat daripada berbilang jadual untuk mendapatkan pemahaman yang menyeluruh. Satu tugas biasa ialah mengira jumlah nilai merentas jadual ini, dikumpulkan mengikut lajur biasa. Walau bagaimanapun, seperti yang terbukti daripada kod yang disediakan, hasil yang salah boleh timbul jika data tidak dikendalikan dengan sewajarnya.

Pertanyaan awal yang diberikan:

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

cuba mengira jumlah nilai daripada dua jadual, AP dan INV untuk sesuatu PROJEK. Walau bagaimanapun, isunya terletak pada penggunaan klausa GROUP BY. Menghimpunkan hasil mengikut AP.PROJECT menyebabkan nilai pendua dimasukkan dalam jumlah, yang membawa kepada jumlah yang salah.

Untuk membetulkannya, pendekatan yang lebih mantap menggunakan sub-pertanyaan diperlukan:

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

Pertanyaan dipertingkat ini menggunakan sub-pertanyaan untuk mengira jumlah nilai bagi setiap PROJEK secara individu. Dengan mengasingkan pengiraan dalam sub-pertanyaan, kami menghapuskan masalah nilai pendua yang disertakan dalam jumlah. Hasilnya ialah ringkasan data yang tepat dan bermakna daripada berbilang jadual, dikumpulkan mengikut lajur yang dikehendaki.

Atas ialah kandungan terperinci Bagaimana untuk meringkaskan data dengan betul dari beberapa jadual SQL dan mengelakkan keputusan yang salah?. 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