Понимаю, что лучше было бы задать вопрос на каком-нибудь специализированном форуме, но на лоре, как известно, имеются специалисты по всему.
Простейшим sql-запросом я получаю два столбца содержащих строки:
mysql> select
->
-> DF_NMPLT,
-> if (
-> locate(char(32), DF_TEXT) = 0,
-> substring(DF_TEXT, 2, char_length(DF_TEXT) - 5),
-> substring(DF_TEXT, 2, locate(char(32), DF_TEXT) - 6)
-> ) as "echelon"
->
-> from FPLDOCM
->
-> where
-> DF_FLAG = 'a' and
-> left(DF_TEXT, 1) = 'S';
+----------+---------+
| DF_NMPLT | echelon |
+----------+---------+
| 02 | 096 |
| 02 | 096 |
| 02 | 116 |
| 02 | 106 |
| 02 | 111 |
| 06 | 056 |
| 06 | 096 |
| 06 | 096 |
| 06 | 096 |
| 02 | 096 |
| 02 | 096 |
| 02 | 091 |
| 02 | 106 |
| 02 | 106 |
| 02 | 106 |
| 02 | 106 |
| 02 | 106 |
| 02 | 096 |
| 02 | 096 |
| 02 | 096 |
| 02 | 096 |
| 02 | 096 |
| 02 | 096 |
| 02 | 056 |
| 02 | 056 |
| 02 | 111 |
| 02 | 106 |
| 02 | 056 |
| 02 | 106 |
| 02 | 116 |
| 02 | 101 |
| 02 | 104 |
| 02 | 111 |
| 02 | 101 |
| 02 | 119 |
| 02 | 101 |
| 02 | 095 |
| 02 | 106 |
| 02 | 101 |
| 02 | 063 |
| 02 | 096 |
| RZ | 096 |
| RZ | 096 |
| OL | 106 |
| 10 | 106 |
| RZ | 106 |
| 03 | 116 |
| RZ | 106 |
| RZ | 101 |
| RZ | 101 |
| RZ | 002 |
| 06 | 101 |
| 06 | 101 |
| 06 | 096 |
| 06 | 101 |
| 06 | 101 |
| 06 | 054 |
| 06 | 111 |
| 06 | 101 |
| 06 | 096 |
| 06 | 096 |
| 02 | 096 |
| 06 | 101 |
| 06 | 101 |
| 02 | 116 |
+----------+---------+
65 rows in set (0.00 sec)
mysql>
Каждый из них принимает значение из ограниченного набора. Первый для ясности назовем номером пульта, второй эшелоном.
В конечном счете мне необходимо написать единый запрос, который представлял бы данные в виде таблицы, где каждая строка соответствует эшелону, а каждый столбец номеру пульта, все в единственном экземпляре, а на пересечении количество встречаемых «совпадений»: данного эшелона для данного пульта.
Пытался найти информацию для динамического формирования столбцов, но не нашел.
Выглядеть должно как-то так:
+---------+---------+---------+---------+
| Echelon | Pult-01 | Pult-02 | Pult-03 |
+---------+---------+---------+---------+
| 151 | 0 | 10 | 9 |
+---------+---------+---------+---------+
| 141 | 40 | 102 | 19 |
+---------+---------+---------+---------+
| ... | ... | ... | ... |
+---------+---------+---------+---------+
| 30 | 15 | 36 | 0 |
+---------+---------+---------+---------+
Есть какие-нибудь мысли, советы? Повторюсь, необходимо написать единый запрос.
Спасибо.