2017-03-10 9 views
1

2つのテーブルがあり、テーブルAのレコードのみを取得する必要があります。外部キーのフィールドに1つのテーブルが同じ値を持っているときに2つのテーブルからレコードを取得

Table A 
--------------------------------------------------- 
Id  Folio  Date   Amount 
YY1  001   01/01/2014  300 
YY2  002   02/01/2014  400 
YY3  003   03/01/2014  500 
YY4  004   04/01/2014  600 

Table B 
--------------------------------------------------- 
Id  Table_A_Id  Status   
XY1  YY1    Process 
XY2  YY1    Process 
XY3  YY1    Process 
XY4  YY2    Process 
XY5  YY2    Rejected 
XY6  YY2    Process 
XY7  YY3    Process 
XY8  YY3    Rejected 
XY9  YY3    Finish 
XY10  YY4    Process 
XY11  YY4    Process 
XY12  YY4    Process 

私はあなたが本当にそれを自分で試してみるが、これを見てみる必要があります。この

Id  Folio  Date  Amount 
------------------------------------------- 
YY1  001  01/01/2014  300 
YY4  004  04/01/2014  600 

答えて

0

をしたいです。

CREATE TABLE #table1(Id VARCHAR(5), Folio VARCHAR(5), Date datetime, Amount numeric(28,12)) 

INSERT INTO #table1(id, folio, date, amount) 
VALUES('YY1', '001', '01/01/2014', 300) 
INSERT INTO #table1(id, folio, date, amount) 
VALUES('YY2', '002', '02/01/2014', 400) 
INSERT INTO #table1(id, folio, date, amount) 
VALUES('YY3', '003', '03/01/2014', 500) 
INSERT INTO #table1(id, folio, date, amount) 
VALUES('YY4', '004', '04/01/2014', 600) 

CREATE TABLE #table2(id VARCHAR(5), table_a_id VARCHAR(5), status VARCHAR(20)) 

INSERT INTO #table2(id,table_a_id,status) 
VALUES('XY1', 'YY1', 'Process') 
INSERT INTO #table2(id,table_a_id,status) 
VALUES('XY2', 'YY1', 'Process') 
INSERT INTO #table2(id,table_a_id,status) 
VALUES('XY3', 'YY1', 'Process') 
INSERT INTO #table2(id,table_a_id,status) 
VALUES('XY4', 'YY2', 'Process') 
INSERT INTO #table2(id,table_a_id,status) 
VALUES('XY5', 'YY2', 'Rejected') 
INSERT INTO #table2(id,table_a_id,status) 
VALUES('XY6', 'YY2', 'Process') 
INSERT INTO #table2(id,table_a_id,status) 
VALUES('XY7', 'YY3', 'Process') 
INSERT INTO #table2(id,table_a_id,status) 
VALUES('XY8', 'YY3', 'Rejected') 
INSERT INTO #table2(id,table_a_id,status) 
VALUES('XY9', 'YY3', 'Finish') 
INSERT INTO #table2(id,table_a_id,status) 
VALUES('XY10', 'YY4', 'Process') 
INSERT INTO #table2(id,table_a_id,status) 
VALUES('XY11', 'YY4', 'Process') 
INSERT INTO #table2(id,table_a_id,status) 
VALUES('XY12', 'YY4', 'Process') 

SELECT * 
FROM #table1 t1 
WHERE t1.id NOT IN (
         SELECT table_a_id 
         FROM #table2 
         WHERE status <> 'Process' 
        ) 


DROP TABLE #table1 
DROP TABLE #table2 
+0

ありがとうございます!私はNOT INについて知らなかった –

+0

問題はありません。それがあなたの質問に答えるなら、答えを受け入れてください。 – manderson

関連する問題