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

Apakah mungkin menggunakan Crosstab/Pivot Query di MySQL?

Anda dapat menggunakan kueri ini -

SELECT
  supplier_id,
  MAX(IF(date = '2012-01-01', value, NULL)) AS '2012-01-01',
  MAX(IF(date = '2012-01-03', value, NULL)) AS '2012-01-03',
  MAX(IF(date = '2012-05-01', value, NULL)) AS '2012-05-01'
FROM (
  SELECT supplier_id, DATE(date) date, CONCAT(SUM(price), '(', qty, ')') value FROM supplier
    GROUP BY supplier_id, DATE(date)
    ) t
  GROUP BY supplier_id;

+-------------+------------+------------+------------+
| supplier_id | 2012-01-01 | 2012-01-03 | 2012-05-01 |
+-------------+------------+------------+------------+
|           1 | 500.00(2)  | 450.00(10) | NULL       |
|           2 | 400.00(5)  | NULL       | NULL       |
|           3 | NULL       | NULL       | 500.00(1)  |
+-------------+------------+------------+------------+

Ini menghasilkan hasil yang Anda inginkan. Tetapi jika Anda ingin melakukannya secara dinamis, lihat artikel ini 'Otomatiskan kueri tabel pivot' - http://www.artfulsoftware.com/infotree/queries.php#523 , atau tautan ini - Tabel pivot dinamis .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa tidak ada kunci yang digunakan dalam EXPLAIN ini?

  2. Gabungkan dua tabel dalam satu kueri SQL dan buat nilai tanggal menjadi unik

  3. Bisakah kunci asing mereferensikan indeks yang tidak unik?

  4. Cara mencadangkan database MySQL dari baris perintah di Linux

  5. Sisipkan/lihat gambar ke/dari MySQL DB