Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Buat hasil ringkasan dengan satu kueri

Ini adalah kueri pivot standar:

  SELECT uc.uut_sn,
         MAX(CASE 
               WHEN uc.characteristic_name = 'char_name_1' THEN uc.characteristic_value 
               ELSE NULL 
             END) AS char_name_1,
         MAX(CASE 
               WHEN uc.characteristic_name = 'char_name_2' THEN uc.characteristic_value 
               ELSE NULL 
             END) AS char_name_2,
         MAX(CASE 
               WHEN uc.characteristic_name = 'char_name_3' THEN uc.characteristic_value 
               ELSE NULL 
             END) AS char_name_3,
    FROM unit_characteristics uc
GROUP BY uc.uut_sn

Untuk membuatnya dinamis, Anda perlu menggunakan Sintaks SQL dinamis MySQL disebut Pernyataan yang Disiapkan . Ini membutuhkan dua kueri - yang pertama mendapatkan daftar characteristic_name nilai, sehingga Anda dapat menggabungkan string yang sesuai ke dalam ekspresi CASE seperti yang Anda lihat dalam contoh saya sebagai kueri utama.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP:Drop-down Dinamis dengan optgroup

  2. MySQL mengembalikan kumpulan hasil kosong

  3. MySQL:bagaimana cara menanyakan orang tua-anak?

  4. MYSQL menonaktifkan Auto-Trim

  5. Berjuang dengan kueri SQL khusus