[英]mysql: UNION GROUP BY without subquery
我有个问题。 我想将查询包装到视图中。 为此,我必须在FROM中转换子查询。 我的查询是这样的:
SELECT
b.id,
b.summe,
getBauNrKomplett(b.id) as bauNrKomplett,
b.parent_id
FROM (
SELECT
pt.id,
pt.parent_id,
SUM(m.menge*p.preis_kostenanschlag) as summe
FROM menge m
join projektposition p ON (m.projektposition_id=p.id)
join positionstyp pt on (p.positionstyp_id=pt.id)
GROUP BY pt.id
UNION
SELECT
pt2.id,
pt2.parent_id,
null as summe
FROM positionstyp pt2
) b
GROUP BY b.id
我找不到其他可能性。 由于GROUP BY,我需要包装UNION语句。
有人可以想象其他解决方法吗?
非常感谢您,Tobias
我相信这是平等的。 如果不是,您能否为sqlfiddle提供一些数据和解释?
SELECT
pt.id,
pt.parent_id,
SUM(IF(m.menge IS NULL,0,m.menge*p.preis_kostenanschlag)) as summe,
getBauNrKomplett(p.id) as bauNrKomplett,
FROM positionstyp pt
LEFT JOIN projektposition p
ON (p.positionstyp_id=pt.id)
LEFT JOIN menge m
ON (m.projektposition_id=p.id)
GROUP BY pt.id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.