子查询使用来自外部查询的未分组列“omt.actualendtime”
Posted
技术标签:
【中文标题】子查询使用来自外部查询的未分组列“omt.actualendtime”【英文标题】:subquery uses ungrouped column "omt.actualendtime" from outer query 【发布时间】:2019-03-07 06:03:01 【问题描述】:下面是查询
SELECT omt.actualendtime::date,
(SELECT array_to_json(array_agg(row_to_json(t)))
FROM (SELECT odt.productshortname,
count(odt.*)
FROM orderdetail_runtime_tran odt
WHERE odt.actualendtime::date = omt.actualendtime::date
AND odt.stagename = 'Ironing'
GROUP BY odt.productshortname
) t
) as item_current_count
From orderdetail_runtime_tran omt
WHERE omt.actualendtime IS NOT NULL AND date_part('year', omt.actualendtime) = '2019'
AND omt.stagename = 'Ironing'
GROUP BY omt.actualendtime::date;
此查询出错
【问题讨论】:
Edit 您的问题并添加一些示例数据和预期结果。应该有一种更好、更简单的方法来完成您最终想要实现的目标,而不是修复该错误。 我不认为样本数据会产生影响,但表定义会有所帮助。 是的,两者都提供会更好。 【参考方案1】:尝试使用子查询:
SELECT actualenddate,
(SELECT array_to_json(array_agg(row_to_json(t)))
FROM (SELECT odt.productshortname, count(odt.*)
FROM orderdetail_runtime_tran odt
WHERE odt.actualendtime::date = actualenddate AND
odt.stagename = 'Ironing'
GROUP BY odt.productshortname
) t
) as item_current_count
FROM (SELECT omt.*,
omt.actualendtime::date as actualenddate
FROM orderdetail_runtime_tran omt
WHERE omt.actualendtime IS NOT NULL AND
date_part('year', omt.actualendtime) = '2019' AND
omt.stagename = 'Ironing'
) omt
GROUP BY actualenddate;
【讨论】:
以上是关于子查询使用来自外部查询的未分组列“omt.actualendtime”的主要内容,如果未能解决你的问题,请参考以下文章