У меня есть это требование, где я выбираю отдельный order_no, код, display_order, уровень, описание и затем сопоставляю его шаблоны.
В настоящее время у меня есть это заявление SQL
SELECT DISTINCT order_no, code, disp_order, lvl, description,
CASE WHEN pattern='1' THEN supplier_code ELSE NULL END AS pattern1,
CASE WHEN pattern='2' THEN supplier_code ELSE NULL END AS pattern2,
CASE WHEN pattern='3' THEN supplier_code ELSE NULL END AS pattern3,
CASE WHEN pattern='4' THEN supplier_code ELSE NULL END AS pattern4,
CASE WHEN pattern='5' THEN supplier_code ELSE NULL END AS pattern5
from tbl_pattern
, который дает мне этот набор результатов
+----------+------+------------+-----+-------------+----------+----------+----------+----------+----------+
| order_no | code | disp_order | lvl | description | pattern1 | pattern2 | pattern3 | pattern4 | pattern5 |
+----------+------+------------+-----+-------------+----------+----------+----------+----------+----------+
| RM001-01 | 1 | 0 | 1 | HK140904-1A | | | | | 0821 |
| RM001-01 | 1 | 1 | 2 | HK140904-1B | 1021 | | | | |
| RM001-01 | 1 | 1 | 2 | HK140904-1B | | 4547 | | | |
| RM001-01 | 1 | 2 | 3 | HK140904-1C | 4547 | | | | |
| RM001-01 | 1 | 3 | 3 | HK140904-1D | | | | 3540 | |
| RM001-01 | 1 | 4 | 2 | HK140904-1E | | | | | |
+----------+------+------------+-----+-------------+----------+----------+----------+----------+----------+
но то, чего я хочу достичь, таково:
+----------+------+------------+-----+-------------+----------+----------+----------+----------+----------+
| order_no | code | disp_order | lvl | description | pattern1 | pattern2 | pattern3 | pattern4 | pattern5 |
+----------+------+------------+-----+-------------+----------+----------+----------+----------+----------+
| RM001-01 | 1 | 0 | 1 | HK140904-1A | | | | | 0821 |
| RM001-01 | 1 | 1 | 2 | HK140904-1B | 1021 | 4547 | | | |
| RM001-01 | 1 | 2 | 3 | HK140904-1C | 4547 | | | | |
| RM001-01 | 1 | 3 | 3 | HK140904-1D | | | | 3540 | |
| RM001-01 | 1 | 4 | 2 | HK140904-1E | | | | | |
+----------+------+------------+-----+-------------+----------+----------+----------+----------+----------+
Пример данных в таблице
+----------+------+------------+-----+-------------+---------+---------------+
| order_no | code | disp_order | lvl | description | pattern | supplier_code |
+----------+------+------------+-----+-------------+---------+---------------+
| RM001-01 | 1 | 0 | 1 | HK140904-1A | 5 | 0821 |
| RM001-01 | 1 | 1 | 2 | HK140904-1B | 1 | 1021 |
| RM001-01 | 1 | 1 | 2 | HK140904-1B | 2 | 4547 |
| RM001-01 | 1 | 2 | 3 | HK140904-1C | 1 | 4547 |
| RM001-01 | 1 | 3 | 3 | HK140904-1D | 4 | 3540 |
| RM001-01 | 1 | 4 | 2 | HK140904-1E | | |
+----------+------+------------+-----+-------------+---------+---------------+