2016-09-06 4 views
0

私は基本的なSQLに苦労しています。私が持っていることは(Cをチームし、上記exempleチームAからチケット1 swithesを参照)重複の最も早いエントリを取得する

 
----------------------- 
|  TICKET  | 
----------------------- 
|id | date  | team | 
----------------------- 
| 1 |22/07/2016| A | 
| 2 |24/07/2016| B | 
| 3 |24/07/2016| B | 
| 1 |23/07/2016| C | 
| 4 |25/07/2016| A | 
| 5 |26/07/2016| A | 
| 5 |27/07/2016| B | 
----------------------- 

時には、一日か二日後に、チケットが別のチームに影響を受ける可能性が次TICKETテーブルです。私が必要とするのは、元々チームAになっていたチケットのリストです(同じIDですが、別のチーム、チームAが一番早い)

"交換済みチームパート ":

SELECT id, date, team 
FROM TICKET 
WHERE (
    id IN (
     SELECT id 
     FROM TICKET 
     WHERE (team = 'B' OR team = 'C') 
    ) 
) 
AND team = 'A' 

ORDER BY日付とGROUP BY句をどこかに入れてください。より良い解決策はありませんか?

+0

あなたのPKは何ですか?あなたのDBには何もユニークなものはありません。あなたのidentもidentではありませんか? –

+0

結果として得たい行を追加できますか?私はあなたの文章の少なくとも3つの可能な解釈(従って可能な結果)を見る。 – Solarflare

+0

'(id、date)'はpkでなければなりません( "1日か2日後...") – Solarflare

答えて

0
select distinct t.id 
from ticket t 
    inner join ticket t1 on t.id=t1.id and t1.team<>'A' and t.date<t1.date 
where 
    t.team='A' 
関連する問題