Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggabungkan Jadual SQL dan Menjamin Nilai Tarikh Unik?

Bagaimana untuk Menggabungkan Jadual SQL dan Menjamin Nilai Tarikh Unik?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-31 18:20:11780semak imbas

How to Merge SQL Tables and Guarantee Unique Date Values?

Menggabungkan Jadual dan Memastikan Nilai Tarikh Unik dalam SQL

Untuk menggabungkan dua jadual sambil memastikan keunikan nilai tarikh, gunakan pendekatan berikut:

  1. Kesatuan Semua Dua Subqueries: Buat dua subqueries untuk mengekstrak data daripada jadual Inbound dan Outbound. Jumlahkan lajur Kuantiti dalam subkueri Masuk dan kira Jenis Keluar dalam subkueri Keluar.
  2. Gabungkan Keputusan dengan Kesatuan Semua: Gabungkan keputusan kedua-dua subkueri menggunakan operator UNION ALL. Ini akan mencipta set hasil tunggal yang mengandungi kedua-dua transaksi masuk dan keluar.
  3. Kumpulkan mengikut Tarikh dan Produk: Gunakan operator GROUP BY pada set hasil gabungan, menggunakan lajur Tarikh dan Produk sebagai kriteria pengelompokan. Ini akan memastikan bahawa setiap gabungan tarikh-produk unik diwakili sekali sahaja dalam hasil akhir.
  4. Jumlah Masuk dan Keluar: Gunakan SUM untuk mengira jumlah kuantiti Masuk bagi setiap kombinasi produk tarikh dan SUM untuk mengira jumlah transaksi Keluar untuk setiap kombinasi.
  5. Keputusan Paparan: Set keputusan akhir akan memaparkan Tarikh, Produk, jumlah kuantiti Masuk dan jumlah transaksi Keluar untuk setiap tarikh unik dan gabungan produk.

Kod Contoh:

SELECT Date, Product, SUM(Inbound) AS Inbound, SUM(Outbound) AS Outbound
FROM ((SELECT Inbound_Date AS Date, Product, SUM(Quantity) AS Inbound, 0 AS Outbound
      FROM Inbound
      GROUP BY 1, 2
     ) UNION ALL
     (SELECT Outbound_Date, Product, 0 AS Inbound, COUNT(*) AS Outbound
      FROM Outbound
      GROUP BY 1, 2
     )
    ) io
GROUP BY Date, Product;

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Jadual SQL dan Menjamin Nilai Tarikh Unik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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