тогда я не понял ваш код
Misha v.3 21.03.2004 11:50
это условие:
^if(!^calendar_hash.[$calendar.dt_year].locate[dt_month;$calendar.dt_month]){...}
не позволит добавить вторую запись '2004 01 1'.
и почему не написать просто $calendar_hash[^calendar.hash[dt_year][$.distinct[tables]]] после запроса? по моему получите то, что вам требуется.
P.S. я бы делал немного не так. я бы создал две структуры на основании результатов запроса. одну (хеш таблиц) использовал бы для foreach/menu по ней и вывода годов/месяцев. вторую (просто хеш, где ключи вида 2004=01=0 использовал бы для хеш лукапов и проверок показываем админу или нет. при этом не делал-бы ветвлений в зависимости от того, что за юзер (только в запросе).