-2

Role.Type = 2 の役割を持ち、同じ場所 (Role.PlaceID) で Role.Type = 1 の従業員よりも料金.価格が大きいすべての従業員を見つけようとしています。

表: 従業員

  • ID
  • 名前
  • タイプ

表: 役割

  • 従業員ID
  • 場所 ID
  • タイプ

表: 手数料

  • 従業員ID
  • 場所 ID
  • 価格

誰でも私を助けることができますか?

編集:いくつかのデータ例

従業員

ID Name Type
1  Name1 1
2  Name2 1
3  Name3 1

役割

EmployeeID  PlaceID  Type
1            1        1
2            2        1
3            2        2

手数料

EmployeeID  PlaceID Price
1             1      500
2             2      700
3             2      800

Role.Type = 1 と Role.Type = 2 の両方の同じ場所に複数の従業員がいて、Role.Type = 2 として Name3 が最大の Fees.Price を持ち、Role.Type = 1 であるため、クエリは結果として (Name3) を返す必要があります。 .

4

3 に答える 3

0

あなたの質問を正しく理解していれば、このようなクエリで問題が解決します

SELECT EMP2.ID
FROM (SELECT ID, PLACEID, PRICE
      FROM EMPLOYEE, FEES
     WHERE EMPLOYEEID = ID AND TYPE = 2) EMP2,
   (SELECT ID, PLACEID, PRICE
      FROM EMPLOYEE, FEES
     WHERE EMPLOYEEID = ID AND TYPE = 1) EMP1
WHERE EMP2.PLACEID = EMP1.PLACEID AND EMP2.PRICE > EMP1.PRICE
于 2013-06-11T14:05:50.303 に答える