2016-04-28 75 views
1

次のコードを使用すると、 "テーブルzpのFROM句のエントリが見つかりません"というエラーが表示されます。誰も私はこのエラーを排除する方法を知っていますか?エラー "テーブルの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 
+1

*このエラーを取り除く方法は?*コンテキスト外でテーブル名( 'zp'と' et')を使用しないでください(サブセレクションでのみ有効です。 'examp.HHNR'と' examp.ZIELPNR')です。 – pozs

+0

しかし、それは "wp"という列は存在しないと言います。どのようにこれらの変数を使うことができますか?実際には、別個のHHNRとZIELPNRを持つ人々の(wp * GIS)の合計を計算したいからです。 –

+0

HHNRとZIELPNRで区別したいが、zp.WPとet.GIS列が必要な場合は、 'DISTINCT ON(zp.HHNR、zp.ZIELPNR)zp.WP、et.GIS'を使用する。 – pozs

答えて

0

zpetの表は、ここで参照することができません。

SELECT SUM(zp.WP*et.GIS) 

彼らは唯一のサブクエリ範囲内で参照することができます。

は、単にこれを実行しよう:

SELECT SUM(examp.WP*examp.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

列WPとGISはサブクエリ出力に存在しません。 – PhilS

+0

しかし、それは "wp"という列は存在しないと言います。どのようにこれらの変数を使うことができますか?実際に私は別個のHHNRとZIELPNR –

+0

を持つ人々のために(wp * GIS)の合計を計算したいので、 "wp"と "GIS"は何ですか? –

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 

私はNULL値に対してSUMをグループ化/計算にはポイントを見ていないとして、私は、LEFT JOINOUTER JOINを置き換えます。

これらのオプションがどちらでもない場合は、質問を明確にしてください。