martinelli
Новичок
возможна ли сортировка внутри group by?
Есть таблица indicators уникальным полем ind_id.
И есть таблица indicators_year связанная с indicators. В indicators_year хранятся описательные поля индикаторов, которые могут меняться год от года. Соответствие заданному году определяется в поле iy_years. Если нет описания за текущий год, то оно берется за последний из предыдущих.
Так же в indicators_year есть поле iy_num, по которому должна происходить сортировка в заданном году.
текущий мой запрос:
Беда втом, что при таком запросе при наличии в indicators_year нескольких строчек по индикатору за несколько лет в сортировке (и выводе данных) будет использоваться значение за 1й год, а не за последний, как мне надо (если индикатору, у которого значение iy_num было равно "1" в первом году присвоить "100" в третьем, он все равно вылезет первым). (И я не могу в запросе сторого написать WHERE iy_years = $year , так как описания за 3й год может не быть, и должно в этом случае использоваться за 2й или 1й год)
Можно ли как-нибуть сделать дополнительную скрытую сортировку внутри group by, чтобы из объедененных по ind_id строк выдавалась та, у которой iy_years максимальная. Посоветуйте в каком направлении можно подумать...
Есть таблица indicators уникальным полем ind_id.
И есть таблица indicators_year связанная с indicators. В indicators_year хранятся описательные поля индикаторов, которые могут меняться год от года. Соответствие заданному году определяется в поле iy_years. Если нет описания за текущий год, то оно берется за последний из предыдущих.
Так же в indicators_year есть поле iy_num, по которому должна происходить сортировка в заданном году.
текущий мой запрос:
PHP:
$year =3;
SELECT * FROM indicators LEFT JOIN indicators_year ON ind_id= iy_indid WHERE iy_years <= $year group by ind_id ORDER BY iy_num
Можно ли как-нибуть сделать дополнительную скрытую сортировку внутри group by, чтобы из объедененных по ind_id строк выдавалась та, у которой iy_years максимальная. Посоветуйте в каком направлении можно подумать...