Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Dựa trên Ngày của Cột được nối với Ngày dưới dạng Tiêu đề

Không phải không sử dụng SQL động để thực hiện truy vấn.

Nhưng nếu bạn sẵn sàng mã hóa các giá trị thì:

SQL Fiddle

Thiết lập lược đồ Oracle 11g R2 :

CREATE TABLE PROD_TIMINGS( PROD_ID, START_DATE, TOT_HOURS ) AS
SELECT 'PR220',   DATE '2017-09-19', 0 FROM DUAL UNION ALL
SELECT 'PR2230',  DATE '2017-09-19', 2 FROM DUAL UNION ALL
SELECT 'PR9702',  DATE '2017-09-19', 3 FROM DUAL UNION ALL
SELECT 'PR9036',  DATE '2017-09-19', 0.6 FROM DUAL UNION ALL
SELECT 'PR9036',  DATE '2017-09-18', 3.4 FROM DUAL UNION ALL
SELECT 'PR9609',  DATE '2017-09-18', 5 FROM DUAL UNION ALL
SELECT 'PR91034', DATE '2017-09-18', 4 FROM DUAL UNION ALL
SELECT 'PR7127',  DATE '2017-09-18', 0 FROM DUAL;

Truy vấn 1 :

SELECT PROD_ID,
       START_DATE,
       CASE START_DATE WHEN DATE '2017-09-18' THEN TOT_HOURS END AS "MON-18",
       CASE START_DATE WHEN DATE '2017-09-19' THEN TOT_HOURS END AS "TUE-19",
       TOT_HOURS
FROM   PROD_TIMINGS

Kết quả :

| PROD_ID |           START_DATE | MON-18 | TUE-19 | TOT_HOURS |
|---------|----------------------|--------|--------|-----------|
|   PR220 | 2017-09-19T00:00:00Z | (null) |      0 |         0 |
|  PR2230 | 2017-09-19T00:00:00Z | (null) |      2 |         2 |
|  PR9702 | 2017-09-19T00:00:00Z | (null) |      3 |         3 |
|  PR9036 | 2017-09-19T00:00:00Z | (null) |    0.6 |       0.6 |
|  PR9036 | 2017-09-18T00:00:00Z |    3.4 | (null) |       3.4 |
|  PR9609 | 2017-09-18T00:00:00Z |      5 | (null) |         5 |
| PR91034 | 2017-09-18T00:00:00Z |      4 | (null) |         4 |
|  PR7127 | 2017-09-18T00:00:00Z |      0 | (null) |         0 |



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chế độ xem cụ thể hóa với Oracle

  2. java.sql.SQLException:Io ngoại lệ:Đường ống bị hỏng làm thế nào để khôi phục mà không cần khởi động lại?

  3. Tạo trình kích hoạt trên Oracle từ một người dùng lắng nghe các sự kiện cho một người dùng khác

  4. Làm thế nào để giải quyết java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver trong thời gian chạy?

  5. Làm cách nào để chèn dấu thời gian trong Oracle?