错误"缺少FROM-clause条目表#34;

时间:2016-04-28 07:10:03

标签: postgresql

当我使用以下代码时,我得到错误"缺少表zp"的FROM子句条目。有谁知道如何消除这个错误?

SELECT SUM(zp.WP*et.GIS)
FROM (SELECT DISTINCT zp.HHNR,zp.ZIELPNR FROM mobility.zielpersonen zp
FULL OUTER JOIN mobility.etappen et
ON zp.HHNR=et.HHNR AND zp.ZIELPNR=et.ZIELPNR
) as examp

2 个答案:

答案 0 :(得分:0)

此处无法引用"String One" + "\n" + "String Two"; zp表:

et

它们只能在子查询范围内引用。

只需尝试这样做:

SELECT SUM(zp.WP*et.GIS)

答案 1 :(得分:0)

我建议这样做:

SELECT SUM(exam.WP * exam.GIS)
FROM (SELECT DISTINCT   zp.HHNR,
                        zp.ZIELPNR, 
                        zp.WP, 
                        et.GIS
    FROM mobility.zielpersonen zp
    FULL OUTER JOIN mobility.etappen et
    ON zp.HHNR=et.HHNR AND zp.ZIELPNR=et.ZIELPNR
) as examp

这包括DISTINCT查询中的WP和GIS,可能是也可能不是您想要的。

但是,我认为在这种情况下最常用的自然方法是由HHNR和ZIELPNR分组并计算其他值的SUM。这可以通过使用此查询来完成:

SELECT zp.HHNR, zp.ZIELPNR, SUM(zp.WP*et.GIS) AS CalcResult
FROM mobility.zielpersonen zp
LEFT JOIN mobility.etappen et
ON zp.HHNR=et.HHNR 
AND zp.ZIELPNR=et.ZIELPNR
GROUP BY zp.HHNR, zp.ZIELPNR

我将OUTER JOIN替换为LEFT JOIN,因为我认为计算/分组SUM为NULL值没有意义。

如果这些选项都不符合您的要求,请澄清问题!