当我使用以下代码时,我得到错误"缺少表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
答案 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值没有意义。
如果这些选项都不符合您的要求,请澄清问题!