質問: SQLを使って二つのテーブルを時間で紐づけたテーブルを作りたいです。
回答: --A1すべての SQLServer に対応するSQL select t1.物,t2.人,t1.場所 from [dbo].[テーブル1] t1,[dbo].[テーブル2] t2 where t1.場所=t2.場所 and ( --2 A (t2.IN時間 = t1.IN時間 and t2.out時間=t1.out時間 ) --3 B or (t2.IN時間 <=t1.IN時間 and datediff(minute,t2.IN時間, t1.OUT時間)>=1) --4 C or (t1.out時間 <=t2.out時間 and datediff(minute,t1.IN時間, t2.OUT時間)>=1) --5 D or (t1.in時間 <= t2.IN時間 and t2.out時間 <=t1.OUT時間 and datediff(minute,t2.IN時間, t2.OUT時間)>=1) --6 E or (t2.in時間 <= t1.IN時間 and t1.out時間 <=t2.OUT時間 and datediff(minute,t1.IN時間, t1.OUT時間)>=1) ); -- A2 同値となる簡潔なSQL select t1.物,t2.人,t1.場所 from [dbo].[テーブル1] t1,[dbo].[テーブル2] t2 where t1.場所=t2.場所 and datediff(minute,iif (t2.IN時間 >= t1.IN時間, t2.IN時間 , t1.IN時間), IIF(t2.out時間 <= t1.out時間,t2.out時間 , t1.out時間))>=1 /* -- A3 同値となるazure SQL Database でのみ実行可能なSQL select t1.物,t2.人,t1.場所 from [dbo].[テーブル1] t1,[dbo].[テーブル2] t2 where t1.場所=t2.場所 and datediff(minute,GREATEST (t2.IN時間 , t1.IN時間), LEAST(t2.out時間 , t1.out時間))>=1) */