Прошу помощи.
Нижеприведённый запрос выводит ошибку "Unknown column 'pj.id' in 'on clause'" в подзапросе, который стоит в списке параметров и использует текущее значение pj.id. Что я делаю не так ?
select pj.id as id,pj.cname as cname,cc.cname as client,cc.id as client_id,pc.cname as category,pj.begin_ts as begin_date,pj.end_ts as end_date,pj.plan_ts as plan_date,ifnull(sum(ph.summa*ccr.cost)/ifnull(nullif(count(distinct rs.id),0),1),0) as zakaz_cost,ifnull(sum(rs.summa*ccrr.cost)/ifnull(nullif(count(distinct ph.id),0),1),0) as budget_cost,pj.projplan_id as projplan_id,pj.techmap_id as techmap_id,(select sum(ph2.summa * ccr2.cost) from prihods ph2 left join currency_courses as ccr2 on ccr2.currency_id = ph2.summa_curid and ccr2.begin_ts <= ph2.oplata_ts and ccr2.end_ts > ph2.oplata_ts and ph2.oplata_ts >= "1310925600" and ph2.oplata_ts < "1311530400" and ph2.ispayed <> 0 and ph2.project_id = pj.id) as current_week_done,(select sum(ph2.summa * ccr2.cost) from prihods ph2 left join currency_courses as ccr2 on ccr2.currency_id = ph2.summa_curid and ccr2.begin_ts <= ph2.oplata_ts and ccr2.end_ts > ph2.oplata_ts and ph2.oplata_ts >= "1310925600" and ph2.oplata_ts < "1311530400" and ph2.project_id = pj.id) as current_week,(select sum(ph2.summa * ccr2.cost) from prihods ph2 left join currency_courses as ccr2 on ccr2.currency_id = ph2.summa_curid and ccr2.begin_ts <= ph2.oplata_ts and ccr2.end_ts > ph2.oplata_ts and ph2.oplata_ts >= "1311530400" and ph2.oplata_ts < "1312135200" and ph2.project_id = pj.id) as next_week,u.fio as manager,u.id as manager_id,pjs.cname as status from projects as pj left join project_categories as pc on pj.pcategory_id = pc.id left join clients as cc on pj.client_id = cc.id left join prihods as ph on pj.id = ph.project_id left join rashods as rs on pj.id = rs.project_id left join currency_courses as ccr on ccr.currency_id = ph.summa_curid and ccr.begin_ts <= ph.oplata_ts and ccr.end_ts > ph.oplata_ts left join currency_courses as ccrr on ccrr.currency_id = rs.summa_curid and ccrr.begin_ts <= rs.oplata_ts and ccrr.end_ts > rs.oplata_ts left join project_statuses as pjs on pj.pstatus_id = pjs.id left join users as u on pj.manager_id = u.id where pj.active <> 0 and pjs.isarchived = 0 group by pj.id
Примечание:
А вот этот запрос работает
select pj.id as id,pj.cname as cname,(select sum(ph2.project_id) from prihods ph2 where ph2.project_id = pj.id) as current_week_done from projects as pj
Хотя это почти тот же самый запрос, только слегка урезаный.
Примечание:
Блин, разобрался. Ступил чуток :)
Всем спасибо.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.