Я следующий запросОбъединение нескольких строк в одну строку
SELECT orderno,
CASE WHEN param_id = 'variant' THEN param_val END AS 'variant',
CASE WHEN param_id = 'period_from' THEN param_val END AS'period_from',
CASE WHEN param_id = 'period_to' THEN param_val END AS'period_to',
CASE WHEN param_id = 'division' THEN param_val END AS 'division',
CASE WHEN param_id = 'show_div' THEN param_val END AS 'show_div',
CASE WHEN param_id = 'group_div' THEN param_val END AS 'group_div',
FROM orderreport
order by orderno
Это возвращает сетку, подобную ниже (есть еще ряд колонн, которые я снял с целью вопроса) Существует также бесконечное число порядков nos
orderno | variant | period_from | period_to | division | show_div | group_div
3 | AH003 | NULL | NULL | NULL | NULL | NULL
3 | NULL | 201300 | NULL | NULL | NULL | NULL
3 | NULL | NULL | 201304 | NULL | NULL | NULL
3 | NULL | NULL | NULL | SALES | NULL | NULL
3 | NULL | NULL | NULL | NULL | Y | NULL
3 | NULL | NULL | NULL | NULL | NULL | Y
orderno | variant | period_from | period_to | division | show_div | group_div
3| AH003 | 201300 | 201304 | SALES | Y | Y
Вы должны предоставить подробную информацию о данных в orderreport. Вы ищете максимум этих значений и т. Д. У вас всегда будет только одна строка с ненулевым значением для этого столбца. Странно, что вы получаете несколько строк для одного заказа ... у вас есть несколько JOINS, которые не отображаются? –
Если единственным выбором является одно значение или значение null, то вы можете применить любой min или max для исключения нулей. Но, как сказал Даррин, это некоторые забавные данные. – Andrew