Не совсем уверен, как сформулировать вопрос, поэтому я дал ему свое лучшее шоу и надеюсь, что объяснение поможет понять суть. Любые вопросы, пожалуйста, спросите.MYSQL поворотные строки и ограничение по строкам определенного столбца
У меня есть следующие настройки для моей базы данных:
create table spooner_pec
(
id int,
year varchar(20),
policy_number int,
primary_name varchar(200),
experience_rate decimal(10,2),
mco_name varchar(200)
);
с этими вставляемыми значениями:
insert into spooner_pec values
(1,'2009',183586,'ZBIN LANDSCAPING INC', 1.22, 'GENEX CARE FOR OHIO'),
(1,'2011',183586,'ZBIN LANDSCAPING INC', 0.93, 'COMPMANAGEMENT HEALTH SYSTEMS, INC.'),
(1,'2012',183586,'ZBIN LANDSCAPING INC', 0.92, 'HEALTH MANAGEMENT SOLUTIONS, INC.'),
(1,'2013',183586,'ZBIN LANDSCAPING INC', 0.50, 'CAREWORKS'),
(1,'2014',183586,'ZBIN LANDSCAPING INC', 0.47, 'UNIVERSITY HOSPITALS COMPCARE'),
(1,'2010',183586,'ZBIN LANDSCAPING INC', 1.27, 'SHEAKLEY UNICOMP')
Запрос, который я работаю до сих пор это:
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'max(case when year = ',
year,
' then experience_rate end) AS `',
year, '-Pen`'
) ORDER BY year
) INTO @sql
FROM
spooner_pec;
SET @sql = CONCAT('SELECT policy_number, primary_name, ', @sql, '
FROM spooner_pec
GROUP BY policy_number');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
Итак, у меня есть одна строка для каждой компании, а затем столбцы за год. Теперь мне нужно только получить строки, в которых, например, штраф за последний год превышает 1. Так, если в прошлом году поступил на все данные были 2014, мне нужно где-Pen 2014, в этом случае,> 1.
Большое вам спасибо! –