私はSQLに慣れていないので、サブクエリの使用と外部クエリに関する配置を把握するのに問題がありました。以下の質問は、作業中の問題の一部であり、目的の結果が得られないようです。SQLPLUS(Oracle) - 日付式がnより大きいかどうかを調べるためのサブクエリ日数
開始日から終了日までの日数を抽出する必要があります。それが2より大きいかどうかをチェックし、それを外側のクエリに適用します。この特定の試みは、 "不足している式"を返すが、他の反復(2番目のクエリベロー)は内部クエリが複数の行を返すというエラーを返す(適切な結果を生成しなかった)。
QUERY1
SELECT P.PETNAME,P.PETTYPE
FROM PETTREATMENT PT, EXAMINATION E, PET P, TREATMENT T
WHERE PT.EXAMNO = E.EXAMNO
AND E.PETNO = P.PETNO
AND PT.TREATNO = T.TREATNO
AND (SELECT TO_DATE(PETTREATMENT.ENDDATE,'DD-MON-YYYY') - TO_DATE(PETTREATMENT.STARTDATE,'DD-MON-YYYY') AS TOTALDAYS FROM PETTREATMENT WHERE TOTALDAYS > 2)
AND T.COST >100
ORDER BY P.PETNAME;
QUERY 2
SELECT P.PETNAME,P.PETTYPE
FROM PETTREATMENT PT, EXAMINATION E, PET P, TREATMENT T
WHERE PT.EXAMNO = E.EXAMNO
AND E.PETNO = P.PETNO
AND PT.TREATNO = T.TREATNO
AND 2 < (SELECT TO_DATE(PETTREATMENT.ENDDATE,'DD-MON-YYYY') - TO_DATE(PETTREATMENT.STARTDATE,'DD-MON-YYYY') FROM PETTREATMENT)
AND T.COST >100
ORDER BY P.PETNAME;
現在のところ、その言い回しに従うのは少し難しいです。あなたのテーブル構造、いくつかのサンプルデータ、そしてこのサンプルのために得ようとしている結果を共有してください。 – Mureinik