私は推測としてこれを提案する:
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
私はNULL値に対してSUMをグループ化/計算にはポイントを見ていないとして、私は、LEFT JOIN
でOUTER JOIN
を置き換えます。
これらのオプションがどちらでもない場合は、質問を明確にしてください。
*このエラーを取り除く方法は?*コンテキスト外でテーブル名( 'zp'と' et')を使用しないでください(サブセレクションでのみ有効です。 'examp.HHNR'と' examp.ZIELPNR')です。 – pozs
しかし、それは "wp"という列は存在しないと言います。どのようにこれらの変数を使うことができますか?実際には、別個のHHNRとZIELPNRを持つ人々の(wp * GIS)の合計を計算したいからです。 –
HHNRとZIELPNRで区別したいが、zp.WPとet.GIS列が必要な場合は、 'DISTINCT ON(zp.HHNR、zp.ZIELPNR)zp.WP、et.GIS'を使用する。 – pozs