1

これまでのところ、ここでクエリを作成しました。

SELECT POLICYNUMBER, FPLAN, FEFFYY, FEFFMM, FEFFDD, FINSTP, CLIENTNUM, FIRSTNAME, 
MIDNAME, LASTNAME, BIRTHDATE FROM PFCASBENE 
INNER JOIN CMRELATN ON POLICYNUMBER = KEYFIELD1 
INNER JOIN CMPERSON ON CLIENTNUM = CLIENTID
WHERE FPSFLG='I' OR FPSFLG='P' ORDER BY CLIENTNUM ASC

FINSTP フィールドには、保険タイプ コードの 1 文字があります。

編集: POLICYNUMBER、FPLAN、FEFFYY、FEFFMM、FEFFDD、FINSTP は PFCASBENE のフィールドです。CLIENTNUM は CMRELATN のフィールドであり、FIRSTNAME、MIDNAME、LASTNAME、BIRTHDATE は CMPERSON からのものです。私は前にそれを言うべきだった。

クライアントが FINSTP='F' のポリシーのみを持っている場合に結果を返したい。FINSTP = 'X'、'V' などの他のポリシーがある場合、結果にクライアント レコードを含めたくありません。

クライアントは複数のポリシーを持つことができるため、このクエリは複数の行を返します。FINSTP='F' を WHERE 句に入れると結果が得られますが、それは私が望むものではありません。これは、「F」であるすべてを返します。このクエリを必要に応じて調整するために、where 句に他に何を追加する必要があるのか​​ わかりません。

これは、AS/400 システム上の DB2 用です。

どんな助けでも大歓迎です!

  • ジョシュ
4

3 に答える 3