1

上記の質問は数回尋ねられたと思います...私はまだクエリに実装できません..次のクエリには、従業員IDが一時テーブルに存在する従業員のサービステーブルがあります。 ...各従業員は異なる場所で働いていた可能性があります..したがって、各従業員に複数のレコードが存在する可能性があります..最後の投稿の詳細を見つけようとしています...しかし、3行目で上記のエラーが発生します.. 等しいのではなく "IN" を使用する場合.. 各従業員 ID に対して複数のレコードを取得します

SELECT
    s.employee_id,
    s.from,
    s.to
FROM 
    service s, temp t
WHERE 
    t.employee_id = s.employee_id
    AND s.postnumber = (SELECT max(s1.postnumber)
                        FROM service s1, temp t1
                        WHERE t1.employee_id = s.employee_id)
ORDER BY 
    t.employee_id;
4

2 に答える 2

2

サブクエリの where 条件が間違っています:t1.employee_id=s.employee_id

distinctサブクエリで試してください。

これを試してください:

select s.employee_id,s.from,s.to from service s,temp t
where t.employee_id=s.employee_id
and s.postnumber = (select distinct max(s1.postnumber) from service s1,temp t1 where     t1.employee_id=s1.employee_id)
order by t.employee_id;
于 2013-03-11T09:02:44.423 に答える
1

SELECT 句でその列を使用していないときに、テーブル「temp」を結合するポイントは何ですか。

それを EXISTS 句に入れてみてください。

于 2013-03-11T11:50:45.057 に答える