繁体   English   中英

MySQL的:UNION GROUP BY没有子查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM