select *
from
(select * from T where Action = 'SENT') s
left outer join
(select * from T where Action = 'RECEIVED') r
on r.Module and s.Module and r.User = s.User and r.Batch = s.Batch
Từ số lượng dữ liệu mẫu hạn chế, có vẻ như bạn có thể xác định duy nhất một kết quả phù hợp bằng cách có một module
chung , user
và batch
. Tôi không chắc tại sao bạn lại đưa ra các bản sao trong các truy vấn của mình. Vấn đề duy nhất khác dường như là sử dụng kết nối bên ngoài để giữ các "gửi" chưa có "nhận".
Tôi nghĩ rằng bạn vẫn muốn mọi thứ trong kết quả. Nếu bạn chỉ muốn các tình huống chưa được ghép nối, hãy thêm:
where r.Module is null