все. Я хочу еще раз спросить о postgresql с фреймворком lumen. У меня есть таблица с клоном реализации в той же таблице. Для разницы я использую parent_id для строки клона, истинную ссылку на данные по id. Я считаю данные из другой таблицы, но подсчитываю только данные клона, а не истинные данные. вот изображение [результат запроса]
данные clone имеют count_apply, но я хочу, чтобы count_apply также отображался в истинных данных. Я хочу такой результат изображение Как запросить эти данные? вот мой код.
select
"requisitions"."id",
"requisitions"."title",
"requisitions"."parent_id",
(select count(id) from requisition_users where requisition_id = requisitions.id) AS count_apply,
"requisitions"."status"
from
"requisitions"
inner join "users" on "requisitions"."created_by" = "users"."id"
inner join "companies" on "requisitions"."company_id" = "companies"."id"
-- inner join "requisition_users" on "requisitions"."id" = "requisition_users"."requisition_id"
where
"requisitions"."entity_id" = 1
-- and "requisitions"."parent_id" is not null
-- and "requisitions"."status" >= 5
-- and (select count(id) from requisition_users where requisition_id = requisitions.id) > 0
-- and "requisitions"."parent_id" = "requisitions"."id"
and "requisitions"."deleted_at" is null
Спасибо тебе за помощь. Будьте здоровы
Я уже редактировал свой пост, я добавил желаемый результат, пожалуйста, помогите мне это исправить
Поскольку я не знаю структуры данных ваших таблиц, я написал внешний запрос, чтобы получить желаемый результат. Пожалуйста, попробуйте это и дайте мне знать, если у вас возникнут трудности:
select
"id",
"title",
"parent_id",
(case when count_apply>0 then count_apply else max(count_apply)over(partition by "title") end)count_apply,
"status"
from
(select
"requisitions"."id",
"requisitions"."title",
"requisitions"."parent_id",
(select count(id) from requisition_users where requisition_id = requisitions.id) AS count_apply,
"requisitions"."status"
from
"requisitions"
inner join "users" on "requisitions"."created_by" = "users"."id"
inner join "companies" on "requisitions"."company_id" = "companies"."id"
-- inner join "requisition_users" on "requisitions"."id" = "requisition_users"."requisition_id"
where
"requisitions"."entity_id" = 1
-- and "requisitions"."parent_id" is not null
-- and "requisitions"."status" >= 5
-- and (select count(id) from requisition_users where requisition_id = requisitions.id) > 0
-- and "requisitions"."parent_id" = "requisitions"."id"
and "requisitions"."deleted_at" is null)t
хорошо спасибо, я попробую это решение
Пожалуйста, дайте мне знать, если у вас возникнут трудности.
покажите нам желаемый результат